OS X のLocalhost内のApache + PHPのmb_sendmailからプロバイダのSMTPサーバを指定してメール送信すると「Domain of sender address _www@hoge.local does not exist」送信元ドメインが存在しないので、失敗します。
php.iniやpostfixをいじるなどのいろいろな情報があったのですが、最終的に下記で解決しました。
ざっくりいうと、送信用のアカウント・パスワードとドメインをpostfix上で指定するという設定作業です。
お約束ですが、作業はすべて自己責任で行ってください。
————–
例)
OS Xローカルサーバー:hoge.local
プロバイダ:foo.ne.jp
送信ポート:587
すべてターミナル上での作業です。
- postfixの起動
# sudo postfix start - main.cfの編集(編集にはもっぱらpicoを使っています。)
# sudo pico /etc/postfix/main.cfrelayhost = [smtp.foo.ne.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = CRAM-MD5 PLAIN
smtp_generic_maps = hash:/etc/postfix/sender_canonical
※認証方法はプロバイダによって違います。こちらに詳しく記載されています。 - 認証ファイルの作成
# sudo pico /etc/postfix/authinfo[smtp.foo.ne.jp]:587 bar@foo.ne.jp:password
# sudo postmap /etc/postfix/authinfo
-
sender_canonicalファイルの作成 こちらに詳しく記載されています。
# sudo pico /etc/postfix/sender_canonical@hoge.local bar@foo.ne.jp
# sudo hash:/etc/postfix/sender_canonical
- postfixのリロード
# sudo postfix reload
以上でPHPからmb_sendmailでメールの送信に成功しました。
参考にさせていただいた2つのサイトの方に感謝します。
OS X 10.10.5, PHP 5.5.29