以前、ConoHaのメールサーバで証明書エラーが出るのをどうにかする - お茶漬けぶろぐという記事を書いた。
要約すると、
というのが前回記事の内容だった。
SMTPの問題をどうやって解消するか?
解消っつーか実際には逃げの手なんだけど、
メール転送サービスは、今回はSendGridを使わせてもらう。
というわけで、以下の対処方針でなんとかする。
※あやふやな記憶をベースに書いてるので過不足や間違いあると思うので、これを見た人は自分で調べ直してね()
$ sudo vim /etc/postfix/main.cf
# TLS parameters
smtpd_use_tls = yes
smtpd_tls_cert_file=/etc/letsencrypt/live/DOMAIN/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/DOMAIN/privkey.pem
smtpd_tls_security_level=may
smtpd_tls_lovlevel=1
smtpd_tls_received_header=yes
# sasl
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
# relay
relayhost = [smtp.sendgrid.net]:587
# local mail settings
local_recipient_maps =
transport_maps = hash:/etc/postfix/transport
$ sudo vim /etc/postfix/master.cf
smtps inet n - y - - smtpd
基本線はこんなイメージのはず。
それぞれぴろっと書くか。
略
基本的には上記設定で良いと思う。
認証情報としてのユーザを登録する必要がある。引数はUSER@DOMAIN
というメールアドレスを操作するつもりで書いている。
# ユーザ作成
$ sudo saslpasswd2 -f /var/spool/postfix/etc/sasldb2 -u DOMAIN -c USER
# ユーザ一覧
$ sudo sasldblistusers2 -f /var/spool/postfix/etc/sasldb2
# ユーザ削除
$ sudo saslpasswd2 -f /var/spool/postfix/etc/sasldb2 -u DOMAIN -d USER
メールは全てSendGridに投げるので良いけど、SendGridに認証を要求されるので、認証情報を記載する必要がある。
$ sudo vi /etc/postfix/sasl_passwd
[smtp.sendgrid.net]:587 apikey:hogehogefugafuga
$ sudo postmap hash:/etc/postfix/sasl_passwd
ローカルメールというのは、宛先ドメインが、自分のサーバと同じになっているメールのこと。本来ならそういう状態のメールは外部に転送する必要もなく、自分のところのサーバ内でやり取りすれば済む。
ただ、今回の構成は、
という状態のため、普通に自分自身とか、同ドメインの別アドレスにメールを送信しようとすると、ローカルメール扱いになってしまう。
そして、ローカルメールに見えるくせに、メールボックスは外部サーバのため、本当は送信する必要があるのだ。
更に言うと、Postfixのデフォルト動作では、ローカルメール判定を受けた上で、そのユーザがローカルに存在しない場合Rejectするようになっている。
これらに対処する必要がある。
まずはローカルにユーザが存在しない場合でも処理をする設定としてlocal_recipient_maps =
を入れている。明示的に空の値を設定している。
次に、ローカルメールのとき、つまり宛先ドメインが自分自身のときに、リレーをするようにtransport_maps
を記載する。
$ cat /etc/postfix/transport
DOMAIN smtp:[smtp.sendgrid.net]:587
メールサーバに対してかなり苦手意識があったけど、動くものが一旦作れると、多少なりとも自信にはなるね。送信部分はまるっとSendGridにお願いしちゃってるのでなんともだけど。
今回は別の趣味で使ってるドメインについて設定したけど、今度は普通にプライベート用を作ってみたりしようかな。メインのドコモ回線をahamoに切り替えようと思っているので、ドコモメールが無くなっちゃうんだよね。それの退避先として自前のサーバに作ってみようかな〜と思ったりしちゃったり。最早メールアドレスを作る事より、既存のドコモメールで登録しているサービス群の登録変更がクソめんどうくさい…