私のサーバー上でメールを送信する際の問題を確認するにはどうすればよいですか? 私は簡単なテストを実行します。PHPメールのトラブルシューティング
if(mail($to, $subject, $message)) {
echo 'Mail Sent';
}
テストは、テキストを出力します。しかし、メールは到着しません。
問題を追跡するにはどうすればよいですか? PHPマニュアルから
私のサーバー上でメールを送信する際の問題を確認するにはどうすればよいですか? 私は簡単なテストを実行します。PHPメールのトラブルシューティング
if(mail($to, $subject, $message)) {
echo 'Mail Sent';
}
テストは、テキストを出力します。しかし、メールは到着しません。
問題を追跡するにはどうすればよいですか? PHPマニュアルから
これはかなり長い話です。 (そのメールを仮定すると、()がtrueを返し、エラーがエラーログに存在しない)いくつかの箇条書き:
ドイツ語のスピーカーにとって、私はこの問題に関してかなり前に「何をすべきか」と書いています。 hereを参照してください。あなたがLinuxボックス上にある場合、コマンドラインでこれを行うマイルズ後
:
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**.
その次のステップを取ることがどのようにわからないが、それはここでは重要なポイントです。
私が最初にやるべきことは、PHPエラーログとそれからあなたのsendmailログです。また、コマンドラインからsendmailを試して、PHP設定をチェックして、メールを送信するために正しく設定されていることを確認してください。
、:
# echo “Body text.” | mail -s “Hello world” [email protected]
あなたはそのメールが届かない場合は、そのボックスのメールシステムに問題があります。それはあなたが尋ねたPHPの質問とは異なる質問です。
Hmmm、コマンドが見つかりません。 echo "本文テキスト" | mail -s "hello world" [email protected] -bash:mail:コマンドが見つかりません。 –
「メール」はどうですか。 –
何も返されません。 –
すべてのトラブルシューティングが失敗した場合 - 理由がわからないためmail()がfalseを返した場合 - mail()を一切迂回してSMTP経由で直接接続できるようにするメールスクリプトPHPMailerに切り替え、 。そうすれば、実際の解決策を設定したり、問題の中核を見つけることができます。
実際にhtmlMimeMail5も試してみましたが、これもSMTPを使っていると思いますが、同じ運がありました。 –
クラスにデバッグモードがありますか?ログを確認することなく、SMTPエラーメッセージを戻す必要があります。 PHPMailerは間違いなく可能です。 –
ここではライブウェブサーバーで作業しているのですか、個人開発用サンドボックスのラインに沿って作業していますか? (つまり、自宅のマシン?)後者の場合、ISP(Cox)が送信メールポートをフィルタリングすることで、私は過去に多くの問題を抱えてきたことが分かります。 (彼らはそうしないとあなたに伝えますが、私はだと確信しています。です。)
私はいくつかのアウトバウンドメッセージを受け取りました。それは、私に配信される前の数日間、Coxメールスプールに巻き込まれてしまいます。
私はそれが役に立ちそうです。
おそらくhttp://spamhaus.org/ – MiseryIndex
です。修正済みです。ありがとう。 –
spamhaus.orgに掲載されていません(phew!) 送信者ドメインはサーバーに属します。 私はいくつかの電子メールアカウントにそれを受け取っていないすべてのものを送信しようとしました。 (.Mac、gmail、yahoo) 私はログファイルを調べます。 メールログがどこにあるのか分かりますか? ありがとう –