Mac OS CatalinaでXAMPPとかでメール送信を行う。


※「postfix動かそうとしてもログが/var/log/maillogに無い件」という記事を書き換えました。

Mac でXAMPPとかでメール送信させてみる

以下Sierraのときに書いた記事だったけど、Catalinaも同様でした。ただ、ipv6を使うと送信先がGmailだと接続を許さないのでipv4設定を行うこと。

下のほうに記述してあるSMTPログをキャッチすると以下のログがでていることがわかる。
ちょっと改行してわかりやすくしてます。
ipv6使う場合は、認証しろよってことです。

relay=ASPMX.L.GOOGLE.COM[2404:6800:4008:c04::1a]:25, 
delay=2.2, 
delays=0.19/0.01/1.5/0.49, 
dsn=5.7.1, 
status=bounced (host ASPMX.L.GOOGLE.COM[2404:6800:4008:c04::1a] 
said: 550-5.7.1 [240d:1b:2f:9700:5cc1:b:db35:f619] 
Our system has detected that this 550-5.7.1 message 
does not meet IPv6 sending guidelines regarding PTR records 550-5.7.1 and authentication. 
Please review 550-5.7.1  
https://support.google.com/mail/?p=IPv6AuthError for more information 
550 5.7.1 . e77si318755pfh.23 - gsmtp (in reply to end of DATA command))

macのpostfixを設定

postfixはデフォルトで、protocolがallになっているので、ipv4だけにします。

/etc/postfix/main.cf
#inet_protocols = all
inet_protocols = ipv4

ちなみに、postfixは、SMTPサーバーでもあるけどクライアントでもあります。なので、常時起動(デーモン)でなくてもいいです。なので、ファイルを編集するだけで、すぐ適用されると思ってください。

ちなみに、メールが送れたり送れなかったりするのは、all指定されているので、ipv4だったりipv6だったりどういうタイミングかわからないけど勝手に使い分けているので、ivp4固定にすればそういう問題も解決です。


Macで開発してて、ローカル環境にてウェブはMANPP とか XAMPPとかあって便利だけど最近のウェブアプリはメール送信したりけっこうあるよね。

Macにはpostfixってのが基本的には入ってて、起動はしてないけどpostfix startで起動できる。
(自動起動させる方法もあるけどまあ、開発のときだけstartすればいいので)

で、設定したんだけど、ぜんぜんメールできへん!って思って調べても、/var/log/maillogを見ればってある。そう、Linuxだとあたりまえのようにそれをみればすぐわかる。

でも、Sierraになってから(もう一つ前からかもしれないけど)/var/log/maillogが無い。どこにもない。ぜんぜんない。syslogだと/var/log/maillogを用意しておいてあげる必要があるとおもって、

touch /var/log/maillog

としても、ファイルに追記されない。
どーにもこーにもできずに数日経過。

もう一度検索したら見つかった。

MaOS Sierra postfix doesn't write log
https://discussions.apple.com/thread/7691357?start=0&tstart=0

commandline
log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info

これを起動させておくとsmtpd、smtpdの情報が取れる。なんなら

commandline
log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info > /var/log/maillog

こうすればmaillogできるけど、まあ、Windowを2つ開いてやればええな。

ということで、すぐさま、設定ファイルの一部が間違っているのがわかって修正して無事起動しましたとさ。
エラーログって大事ですね。大事ですね。