#気まぐれ & 気まま & 天邪鬼な老いぼれ技術屋の日々の記録のうち、主に Perl・CGI・HTMLなど Web技術に関連した記事です。
右端上端の同一カテゴリージャンプボタンで同じカテゴリーの他の記事を順番にご覧いただけます。
Access Counter:  総アクセス数

楽 天 の 商 品

-2088- XAMPP(localhost)からメール送信
= 今日は画像なし m(_ _)m =
一つ前で XAMPP上の perlについて書いたが、続けてこのローカルサーバー(localhost)から外部の SMTPメールサーバーに接続してメール送信をしたいと悪戦苦闘。そのメモとして。
XAMPP+php+sendmail などで検索すれば localhostからSMTPサーバーに接続してメール送信する方法はいくつも見つかるが、一番多い gmailサーバーを使う例に沿ってその通り設定してもなぜか送信されない。多くの情報では sendmail.exe を使用する場合 php.ini の [mail function](1000行目あたり)の以下の行の行頭の";" を削除して
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
として
SMTP=localhost
smtp_port=587
sendmail_from = postmaster@localhost


sendmail.ini のサーバー設定で SMTPサーバーへのログイン設定を
smtp_server=smtp.gmail.com
smtp_port=587
auth_username=メアド@gmail.com
auth_password=パスワード

pop3_server=pop.gmail.com
pop3_username=ログインID(メアド)
pop3_password=パスワード


以上を設定しておいて、下記 phpスクリプト(test_mail.php)を ローカルホストのルートにおいてブラウザからhttps://localhost/test_mail.php と打ち込めばメール送信されるはず。

<?php
if (mb_send_mail('送信先メアド', 'テストメール from lacalhost', 'ここがメール本文', '送信元メアド')) {
echo '送信完了';
} else {
echo '送信失敗 エラーログを確認してください。 (xampp\sendmail\error.log)';
} ?>


ところが送信は失敗して、エラーログには Cannot connect to POP server 64.233.188.108, connect error 10060 などと記録される。ほぼ同じ設定で yahooメールは送信できる。gmailの helpなどを読むと、どうやら gmailのサーバーログイン認証は POP before SMTP ではなく SMTP認証らしいと分かって、sendmail.iniの最後の3行(青字の"pop3_*"の行)は全てコメントアウトしてみたら、あっさり送信できた。もしかしたら?と思いつつ、POP認証も設定が違ってさえいなければ邪魔はしないのでは?と思って確認を最後に回したのがアダになった。
2019/08/24