PHPエラー「mail(): SMTP server response: 554〜Client host rejected: Access denied」の原因と解決方法

Windows 7のコマンドプロンプト等でPHP 5のメール関数「mail()」でメール送信を実行すると、以下のようなエラーが表示されることがある。

Warning: mail(): SMTP server response: 554 <KD略〜.ppp-bb.dion.ne.jp[略.略.略.略]>: Client host rejected: Access denied in Command line code on line1

※「略」の箇所には、送信元のIPアドレスの数値が記載される。

このエラーの原因は、メール送信先のメールサーバにアクセス拒否をされていることにある。

php.iniで

;SMTP = localhost

という初期設定ではなく

SMTP = メール送信先サーバのIPアドレス(またはホスト名)

といったような設定になっている場合において、上記のようなエラーになってしまった場合は、エラーを解決するには、メール送信先サーバが送信元(PHPを実行するWindowsマシン等)からの接続を拒否していないかどうかを確認する必要がある。

送信先のメールサーバがPostfixの場合、Postfix側の設定で接続元ホストのIPアドレスを拒絶する設定ができたりするので、そういったあたりを調べていくことになると思う。

※php.iniのSMTPで指定する送信先のメールサーバ(リレー先のメールサーバ)は、見ず知らずのサーバを指定するべきではなく、自分の管理下にあるサーバ、または、メールサーバの管理者に許可をもらってから指定するべき。

前へ

PHPエラー「mail(): "sendmail_from" not set in php.ini or custom "From:" header missing」の原因と解決方法

次へ

松山観光港から松山⇒小倉行フェリーに乗った 〜乗船券、2等船室の様子など〜