Postfix を Mac に設定して Sendmail を送る方法です。大半は以前書いた Ubuntu の設定や下記のサイトを参考にすれば可能ですが、Mac ではパスが違ったり、デフォルトで出るエラーなどがありますので、その辺りについてまとめておきます。
Postfix を設定してメール送信出来るようにする
Postfix を起動する
Mac には Postfix がデフォルトで入っているようです。そのため、以下のコマンドで起動をします。
1 | sudo postfix start |
Postfix を起動するとエラーが出る
Postfix を起動したら下記のようなエラーが発生しました。エラーメッセージの内容ですが「グループもしくはその他での書き込みができる」的なことが書いてあります。推測ですが、その他のユーザーなどが書き込めるようになっているのが問題なのでしょうか。
postfix/postfix-script: warning: group or other writable: /Library/Server/Mail/Data/mta
よくわからないので、エラーメッセージで検索してみたら下記の記事で回答がありました。英語なので該当部分のみを簡単に和訳させて頂きます。
「グループもしくはその他の書き込み」というメッセージは、別のユーザー(オーナーではない)が書き込めることを意味しています。あなたは chmod でそれを修正することができます。下記がグループの書き込み権限を削除する例。
ということでコードを提示してくれています。
1 | sudo chmod g-w /Library/Server/Mail/Data/mta |
その後に下記のコマンドでチェックしてエラーが発生するか調べます。エラーメッセージが出なければ解決です。
1 | sudo postfix check |
Postfix の設定をする
以下のファイルの編集をします。
1 | sudo vi /usr/share/postfix/main.cf |
下記の項目のコメントアウトを外して設定します。設定ファイル内ではバラバラに配置されています。値についてはテストメールを送信するだけなら、設定ファイルにあるサンプルのままでも送信することができます。
1 2 3 4 5 6 7 8 | mail_owner = postfix myhostname = mail.ubuntu mydomain = ubuntu myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost mynetworks = 192.168.0.0/24, 127.0.0.0/8 home_mailbox = Maildir/ |
relayhost の設定もしておきます。
1 | relayhost = [smtp.gmail.com]:587 |
設定ファイルの末尾に下記の設定を記述。
1 2 3 4 5 6 7 8 9 | #sasl setting 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_sasl_mechanism_filter = plain #tls setting smtp_use_tls = yes |
Gmail アカウントの情報を設定する
/etc/postfix/sasl_passwd を作成します。
1 | sudo vi /etc/postfix/sasl_passwd |
以下のように Gmail のアカウント情報を入れます。
1 | [smtp.gmail.com]:587 example@gmail.com:password |
適切な権限を設定し postmap をかける。
1 2 | chmod 640 /etc/postfix/sasl_passwd postmap /etc/postfix/sasl_passwd |
Postfix を再起動する。
1 2 | sudo postfix stop sudo postfix start |
テストメールを送信する
1 | echo test|mail demo@example.com |
おわりに
私の環境では cron で通知メールが内部で送信され続けていたようで、Postfix の設定が完了した瞬間に100通くらいのメールが cron の通知先(自分のメールアドレス)に送信されて驚きました。
コメント