久々のメールサーバ設定
かれこれ9年くらいメールサーバ設定はしていなかったのだが、Linuxサーバ上のアカウントからメールすることになった。
今時メールサーバを自前で立てても、世の中に信用してもらえないし、セキュリティ上いろいろ面倒なことが起こっても嫌なので、Postfixを使ってGmailにメールを転送する設定をしてみた。
##必要なパッケージ
まずはPostfix。このサーバはCentOS7をインストールしたのでPostfixは普通に入っている。
# rpm -qa | grep postfix
postfix-2.10.1-9.el7.x86_64
次にcyrus-saslが以下の4つ分ないとGmailでの認証ができない。
- cyrus-sasl-lib
- cyrus-sasl
- cyrus-sasl-plain
- cyrus-sasl-devel
CentOS7をインストールした状態だと
# rpm -qa | grep cyrus-sasl
cyrus-sasl-lib-2.1.26-23.el7.x86_64
cyrus-sasl-plain-2.1.26-23.el7.x86_64
2個しか入っていない。なので残りを追加する。
# yum install cyrus-sasl cyrus-sasl-devel
入ったことを一応調べると
# rpm -qa | grep cyrus-sasl
cyrus-sasl-lib-2.1.26-23.el7.x86_64
cyrus-sasl-2.1.26-23.el7.x86_64
cyrus-sasl-plain-2.1.26-23.el7.x86_64
cyrus-sasl-devel-2.1.26-23.el7.x86_64
となる。
main.cfの編集
/etc/postfix/main.cfを編集する
# cd /etc/posrtix
# vi main.cf
一番最終行に以下を追加
myorigin = example.com
myhostname = smtp.example.com
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
inet_protocols = all
smtp_use_tls = yes
smtp_tls_security_level = encrypt
tls_random_source = dev:/dev/urandom
sasl_passwdを編集する
/etc/postfix/sasl_pawwsdを編集する
# vi sasl_passwd
[smtp.gmail.com]:587 メールアドレス@gmail.com:パスワード
権限をrootだけ読み書きできるように変更
# chmod 600 ./sasl_passwd
postmapコマンドを使ってpostmap.dbを作る
# postmap /etc/postfix/sasl_passwd
できたかな?
# ls -al sasl_passwd*
-rw------- 1 root root 60 5月 4 21:23 sasl_passwd
-rw------- 1 root root 12288 5月 4 21:23 sasl_passwd.db
##postfixのプロセスを再起動
設定を反映させるためにpostfixのプロセスを再起動する
# systemctl restart postfix
##Googleのセキュリティ設定を変更する
Googleアカウントのセキュリティ設定で「安全性の低いアプリのアクセス」をオンにしないと行けない。
- Googleアカウント/セキュリティ にアクセス
- 安全性の低いアプリのアクセス で 「アクセスを有効にする(非推奨)」をクリック
試験してみる
できたかどうか、試験してみる。
# mail hoge@example.com
Subject: test
test
EOT
ここで、subjectは件名。次の行は本文。EOTはCtrl+dで終了(送信)させると、EOTと出てくる。
hoge@example.com にメールが届いていることを確認して終了。
とりあえず以上。
2023/05/01 追記
Gmailはアプリパスワードを使用しないと送信できなくなった。
1.Gmailアカウント-セキュリティ-2段階認証プロセス をONにする必要がある
2.セキュリティ-アプリパスワード で設定する。(が、GoogleはしょっちゅうGUIを変更するのでこれで次に行けるかどうかは不明)