こんにちは。
今回は、Mac YosemiteのXamppでPHPからメール送信可能な状態に設定します。
MacにはPostfixが予めインストールされているため、
Gmailを使って簡単設定でメール送信サーバを構築します。
Postfixの設定
まず、Postfixの設定をすすめていきます。
デフォルトのチェック
ターミナルで下記のコマンドを実行します。
エラーメッセージが出なければ問題ありませんです。
$ sudo postfix check
リレーサーバーを設定
メールを送信出来るようにするため、外部のメールサーバー(この場合はGmail)へリレーする設定を追加します。
postfixの設定ファイルをいじります。
$ sudo vi /etc/postfix/main.cf
下記の内容を最下部に追記
relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain smtp_use_tls = yes tls_random_source=dev:/dev/urandom
sasl用のパスワードファイルにGmailのアカウントを追記
Postfixからのメール送信をGmail経由にて送るため、sasl用のパスワードファイルにGmailのアカウントを追記します。
$ sudo vi /etc/postfix/sasl_passwd
上記コマンドで作成されたファイルに下記内容を追記
[smtp.gmail.com]:587 アカウント名@gmail.com:パスワード
作成したファイルにpostmapコマンドを使って、アカウントのテーブルファイルを作成します。
# sudo postmap /etc/postfix/sasl_passwd
設定ファイルのチェック&再起動
$ sudo postfix check $ sudo postfix reload
送信テスト
メールの送信テストを行います。
正常に送信出来ない場合は、上記までの手順を見なおしてください。
ちなみにログ・ファイルは → /var/log/mail.log
$ date | mail -s test アカウント@gmail.com
Xamppの設定
あとはXamppの設定をして、メールを送信します。
php.iniの編集
sendmail_path を変更します。
; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = sendmail_path = "env -i /usr/sbin/sendmail -t -i"
送信テスト
最後にメールの送信テストプログラムを実行します。
<?php if (mail("example@example.com", "TEST MAIL", "This is a test message.", "From: from@example.com")) { echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; }