PHPエラー「mail(): Failed to connect to mailserver」の原因と解決方法

Windows版PHPでmail()関数を使用してメールを送信しようとした時に、

PHP Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\test\mail.php on line 50

というエラーになることがある。

このエラーの原因は、php.iniファイルで以下の2つの設定を見直すことで解決できる可能性がある。

(1)SMTPサーバの指定

(2)SMTPポートの設定

例えば、php.iniの設定が

; For Win32 only.
;SMTP = localhost
smtp_port = 25

となっている場合、PHPでのメール送信の設定は、

(1)SMTPサーバ(メール送信サーバ)

   localhost

(2)SMTP用のポート(smtp_port)

   25番

となっていることが分かる。

もし、現在の設定でメール送信に失敗する場合は、これらの設定のどちから一方あるいは両方ともの設定を変更し、メール送信ができるようになるかを確認する。

(1)SMTPサーバ

 デフォルト(初期)設定の「localhost」をPHPのメール送信サーバとして使用してよいメールサーバのホスト名またはIPアドレスに変更する。

 《例》SMTP = 192.168.2.5 ※メールサーバとして「192.168.2.5」を使用してよい場合

(2)SMTP用のポート(smtp_port)

 迷惑メール対策のためプロバイダが送信メールサーバのポート「25番」を使用できなくしている場合があるので、そのような場合は、サブミッションポート「587番」を指定する。

 《例》smtp_port = 587

<注意>
php.iniファイルに「For Win32 only」とあるように、上記の設定は、Windows専用の設定であり、Linuxでは設定不要。

前へ

PHPエラー「Call to undefined function mb_language()」の原因と解決方法

次へ

Internet Explorer 9が「dw20.exe」というエラーで頻繁に強制終了した時の解決方法