メールが送れなくて焦るの続き。実は解決してなかった。
何で問題が発覚しなかったかというと、手元の端末からSSHトンネリングで接続して、localhostつまり手元のパソコンのSSHに向けてメール送信を1回やってしまうと、どこかにその情報が記録されてしまい、うっかりデフォルトメールサーバをlocalhostにしたままだとメールが送れてしまっていたから。デフォルトをfrontier-line.orgにして接続失敗で今日になって発覚orz。
原因は以前書いた通りで解決策も大体以前書いた通りなんだけど、4時間ほどなにげに嵌まった。その原因は、最初にソースからpostfixを入れる→何かうまく行かない→portsから入れる、をやってしまい、ソースから入れた時の設定ファイルは/etc/postfixの下、portsから入れた時の設定ファイルは/usr/local/etc/portfixの下、で、案の定/etc/postfixの方をいじっていて何で設定が反映されないのかと悩みまくるという、まあ、あるあるある……なオチ。
解決の作業の前にとりあえず確認。
grep submission /etc/services
で、
submission 587/tcp
submission 587/udp
が出れば、サブミッションポートは予約済み。
/usr/local/etc/portfix/master.cfで、次の2行のコメントアウトを外して有効にする。POP before SMTPで認証済みなので、他の認証オプション関係はすべてコメントアウトのままにしておく。
submission inet n – n – – smtpd
-o syslog_name=postfix/submission
2行目移行の行頭スペースは必須。
service postfix restartあるいはpostfix reloadで変更を反映させる。
netstat -na | grep 587
で、
tcp4 0 0 *.587 *.* LISTEN
と出るし、 sockstat -4lでも、
root master 2708 17 tcp4 *:587 *:*
となって、確かにポート587で待ってますよ、ということが確認できた。念のためtelnet localhost 587を実行して接続できることも確認した。
さて、メールを送ろうとすると、サーバに接続はできるものの、
454 4.7.1 Relay access denied
となる。
/usr/local/sbin/postconf | grep mail_version
でバージョンを確認すると、portから入ったのは2.10.1だった。2.9以前ではsmtpd_recipient_restrictionsで設定していたパラメータが、2.10移行ではsmtpd_relay_restrictionsで設定するようになったのだけど、古いままにしていたので出たエラー。/usr/local/etc/postfix/main.cfに
smtpd_relay_restrictions = permit_mynetworks, check_client_access,btree:/usr/local/etc/dracd,check_relay_domains,reject
と書いてもう1回postfix reloadして、無事送信できることを確認した。
Recently:
- 「UFOロボグレンダイザー たとえ我が命つきるとも」攻略終了
- グレンダイザーU、宇門博士のステータス下げすぎでは?
- Fallout 1st加入した
- Fallout 76
- CSI:マイアミ
- Answers to Antonella Belli’s questions
- コミックマーケット参加終了
- エルデンリング攻略メモ
- 31話 林所員の移動速度が凄いw
- twitter botの復活を試みていろいろと嵌まる