以前は自宅サーバーを構築して、Webサーバーやメールサーバーなどを運用していたが、メンテナンスが煩わしくなり、2013年に「さくらレンタルサーバー」に切り替えた。PHPも、SQLサーバーも動くし、コンテンツをサーバーにアップするだけなので簡単で非常に助かっている。
PHPプログラムは、自宅のPCにXAMPP1.8.2をインストールして、テキストエディタで書いており、「問合せ」や「WEBアンケート」など、その結果をメールで送信、情報をCSVファイルに書込み集計などに使っている。
自宅PC(Windows8)にはメールサーバーを構築していないので、ローカル環境でメール送信は出来ないが、gmailを利用すれば、メールサーバーなしでもメール送信が出来ることを知り、さっそく試みた。2つのiniファイルの変更を行うのだが、変更分のみを記述すると次のようになる。
php.ini |
sendmail_path = “\”C:\xampp\sendmail\sendmail.exe\” -t” |
有効にする |
|
;sendmail_path=”C:\xampp\mailtodisk\mailtodisk.exe” |
無効にする |
sendmail.ini |
smtp_server=smtp.gmail.com |
|
|
smtp_port=587 |
|
|
auth_username=ms.naka.jp@gmail.com |
gmailのメールアドレス |
|
auth_password=******** |
gmailのパスワード |
|
force_sender=ms.naka.jp@gmail.com |
gmailのメールアドレス |
ところが、次のコードを実行すると「メール送信が失敗しました」となり、送信されない。
——————————————————————————–
$rc=mb_send_mail($to,$apptitle,$body,$ext_header);
if (!$rc){
echo “メール送信が失敗しました。<br >”;
}else{
$_SESSION=NULL;
echo “メールが送信されました。<br >”;
}
——————————————————————————–
上記の設定でメール送信が出来たという報告がいくつものWebサイトであったが、何度やってもダメで、error.logを見たら、
Connection Closed Gracefully.
と書かれていた。このログを手がかりにして、片っ端から調べてみて設定を変えたりしたが、やはり送信できない。更に調べていくと、「Windows8ではXAMPPでsendmailが使えない」という情報を見つけた。そこで、気分転換も兼ねて、Windows7のノートパソコンで同じ設定で実行したら、何とまあ、あっさり送信が出来てしまった・・・。つまり、
原因はWindows8にあった
ということだ。レンタルサーバーではキチンとメール送信が出来ているので実用的には問題はなかったのに、なんだかんだで、この結論までに半日ぐらい費やすることになってしまって、さすがに疲れた。まだ、Windows8で送信できないという問題は残っているが、原因が判明してホッとした。