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