macには、デフォルトでメール転送エージェント(MTA)である、Postfixがインストールされているが、
MAMPにインストールしたWordPressのプラグインなどから、メールを送信する際には、少し設定が必要となる。
また、ここではsmtpにGMailを使用する
設定
/private/etc/postfix/main.cf
を編集する。
sudo vi /private/etc/postfix/main.cf
ファイルを開いたら、一番下に以下を記述
# gmail setting ==================================================
myorigin = gmail.com
myhostname = smtp.gmail.com
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/private/etc/postfix/gmail_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
# ================================================================
gmailパスワードを作成する
※ gmailパスワードをあらかじめ2段階認証にしておく必要があります。
以下から、アプリパスワードを設定する。
アプリパスワード
- [アプリを選択] から [メール] を選択
- [端末を選択] から [Mac] を選択
[生成] をクリックする
上記、パスワードをメモしておく。
gmailパスワードを設定する
作成したgmailのアプリパスワードを設定したファイルを作成する
作成するファイルは、/private/etc/postfix/main.cf
に追記した、
smtp_sasl_password_maps
のファイル名にすること
sudo vim /private/etc/postfix/gmail_passwd
以下のように記載
[smtp.gmail.com]:587 メールアドレス@gmail.com:アプリパスワード
アプリパスワードは空白を開けずに続けて記載してOK
パスワードファイルの作成が完了したら、mapデータベースを更新する。
sudo postmap /private/etc/postfix/gmail_passwd
gmail_passwd.db
が作成されているか確認
ll /private/etc/postfix/ | grep gmail
gmail_passwd.db
が表示されればOK
メールを送信してみる
postfixの停止(すでに起動している場合のみ)、起動
# 停止
sudo postfix stop
# 起動
sudo postfix start
テストメールを送信
date | mail -s test [あなたのメールアドレス]
メールが受信できれば、成功
番外 postfixのログファイルがない場合
上記でメールが送信できない場合は、なぜ送信できないのか、探る必要があるが、
自分の環境下では、/var/log/mail.log
がなかった。
そのため、コンソールにメールログを出力して確認をした。
log stream --predicate '(process == "smtpd") || (process == "smtp")' --info
上記コマンドを実行すると、ターミナルが待ち状態になり、mailコマンドを実行する度に、画面にログが吐かれる。