ローカルのXAMPPで検証する。
SMTP25番ポートが禁止されている環境や、確実に相手に届けたい場合は、別に送信メールサーバを用意して587番ポートでアカウント認証経由で送信した方が良い。
もくじ
php.iniの編集 (C:\xampp\php\php.ini)
[mail function] ; For Win32 only. ; http://php.net/smtp SMTP=localhost ; http://php.net/smtp-port smtp_port=25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(). ;mail.force_extra_parameters = ↓変更 [mail function] ; For Win32 only. ; http://php.net/smtp SMTP=localhost ; http://php.net/smtp-port smtp_port=25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = me@example.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
sendmail.iniの編集(C:\xampp\sendmail\sendmail\ini)
[sendmail] smtp_server=mail.mydomain.com ↓変更 ;smtp_server=mail.mydomain.com smtp_server=smtp.gmail.com smtp_port=25 ↓変更 ;smtp_port=25 smtp_port=587 auth_username= auth_password= ↓変更 ;auth_username= ;auth_password= auth_username=hogehoge@gmail.com auth_password=gmailパスワード force_sender= ↓変更 ;force_sender= force_sender=tacosmailphp55@gmail.com
○mailtest.php
<?php if (mb_send_mail('hogehoge@example.net', 'test_send', 'test_contents')) { echo 'Send success'; } else { echo 'Send false'; } ?>
送信失敗
Apacheのログを見る。
Please log in via your web browssendmail: Error during delivery: <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnhoge
解決方法
上記のようにエラーが出た場合は、Googleアカウント側でアプリケーションがPHPを使うことを許可する必要がある場合があります。
- https://accounts.google.com/DisplayUnlockCaptcha
でアカウントへのアクセスを許可する - https://www.google.com/settings/security/lesssecureapps
で安全性の低いアプリのアクセスを「オン」にする
hogehoge@example.netにて受信を確認することが出来た。
@see http://yossy-style.net/xampp-mb_send_mail
@see http://php7.web.fc2.com/mail.html