3

私のサイトの連絡フォームにあるphpメール機能を使用してメールを送信してからしばらく経ちました。最近、動作が停止していることがわかりました。お問い合わせフォームでお問い合わせを送信すると、正常に送信されたと表示されますが、実行したテストはいずれも受信トレイに届きませんでした。

ここで同じ問題に直面している人はいますか?どうすればこれを修正できますか?

cpanelでMXエントリを確認しましたが、データは正しいです。SMTPを試したいのですが、アクセス情報がありません。

この問題について助けてくれませんか?

私が見つけた追加情報:Webサーバーはホスティング会社の1つでホストされています。メールサーバーはグーグルでホストされています。

おそらくここで問題はどこにありますか?

4

5 に答える 5

2

おそらく問題は、フォームが大量のトラフィックを生成し、ブロックされたことを「把握」したホスティング プロバイダーにあります。

于 2012-07-05T15:23:13.617 に答える
1

または、何か問題が発生しました。問題を見てください/var/log/mail.*

于 2012-07-05T15:26:44.757 に答える
1

mail() 関数が返すものを適切に検証していますか?

error_log もチェックして、PHP に何もないことを確認することをお勧めします。メールが送信されるかどうかを確認できる場合は、別のサーバーにコードを配置してみてください (メール機能を備えた小さなプログラムを作成します)。もしそうなら、それはあなたのISPである可能性が最も高いです.

于 2012-07-05T15:26:45.740 に答える
1

SMTP に直接接続する方法は次のとおりです。

$smtp = fsockopen("localhost", 25, $errno, $errstr, 15);
if(!$smtp) { 
    echo "failed";
}
else {
    stream_set_timeout($smtp, 0, 80000);
    fwrite($smtp, "HELO domainname.com\r\n");
    stream_set_blocking($smtp, 0);
    fwrite($smtp, "MAIL FROM:<".$from.">\r\n");
    fwrite($smtp, "RCPT TO:<$to>\r\n");
    fwrite($smtp, "DATA\r\n");
    fwrite($smtp, "Date: ".date("r")."\r\n");
    fwrite($smtp, "From: <".$from_address.">\r\n");
    fwrite($smtp, "Reply-to: $replyto\r\n");
    fwrite($smtp, "Subject: Test\r\n");
    fwrite($smtp, "To: $to\r\n");
    $outMsg .= "Whatever your email body is, then end it with a period on a new line\r\n.\r\n";
    $bitesWritten = fwrite($smtp, $outMsg);
    echo "Wrote $bitesWritten of " strlen($outMsg);
}
于 2012-07-05T15:36:01.483 に答える
0

さて、ここでの問題は、ホスティング サーバーのメール exim が壊れていたことです。そのため、ホスティングサポートはそれを更新する必要があり、それで問題は解決しました。

于 2012-07-06T19:43:55.857 に答える