サーバーで送信されているメールの問題を確認するにはどうすればよいですか? 簡単なテストを実行します。
if(mail($to, $subject, $message)) {
echo 'Mail Sent';
}
テストがテキストを出力するもの。が、一向にメールが届きません。
問題を追跡するにはどうすればよいですか?
それはかなり長い話です。いくつかの箇条書き (mail() が true を返し、エラー ログにエラーがないことを前提としています):
ドイツ語を話す人のために、私はこの問題についてかなり網羅的な「何をすべきか」を以前に書きました。ここを参照してください。
Myles に従って、Linux ボックスを使用している場合は、コマンド ラインで次の操作を行います。
# echo “Body text.” | mail -s “Hello world” you@example.com
そのメールが届かない場合は、そのボックスのメール システムに問題があります。これは、あなたが尋ねた PHP の質問とは別の質問です。
PHPマニュアルから:
Return Values
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
It is important to note that just because the mail was accepted for delivery, **it
does NOT mean the mail will actually reach the intended destination**.
次のステップに進む方法はわかりませんが、ここが重要なポイントです。
すべてのトラブルシューティングが失敗した場合 (不明な理由で mail() が false を返したと仮定した場合)、PHPMailerなどのメーリング スクリプトに切り替えて、 mail() を完全にバイパスし、SMTP 経由で直接接続し、広範なデバッグ モードを提供します。そうすれば、実用的なソリューションを設定するか、問題の核心を見つけることができるはずです。
最初に PHP エラー ログから始めて、次に sendmail ログから始めます。また、コマンド ラインから sendmail を試し、PHP 構成をチェックして、メール送信用に正しくセットアップされていることを確認します。
ここでライブ Web サーバーに取り組んでいますか、それとも個人的な開発サンドボックスに沿った何かに取り組んでいますか? (つまり、自宅のマシンですか?) 後者の場合は、ISP (Cox) による送信メール ポートのフィルタリングで過去に多くの問題が発生したことをお伝えできます。(彼らはそうしないと言うだろうが、私は彼らがそうしていると確信している。)
また、配信された数日前に Cox のメール スプールに引っかかってしまったアウトバウンド メッセージもいくつか受け取りました。
お役に立てば幸いです。