0

私のメールスクリプトはオンラインサーバーにあります。正常に動作していました。しかし今ではありません。メールの送信が停止した理由がわかりません。電子メールが送信したメッセージが表示されますが、受信トレイに電子メールが受信されません。ここに私のphpスクリプトがあります:

$useremail = $_POST['myemail'];

    $friendemail = $_POST['friendemail'];

        $name = "support";

        $email = "support@example.com";

        $rec = $friendemail;

        $sub = "support Invitation";

        $body = 'the user '.$useremail.' has sent you message';

        $header="Content-type: text/html\n";

        $header .= "From: $name < ". $email ." >";

        $success_mail = mail($rec,$sub,$body,$header);
        if($success_mail){ echo "success0";} else { echo "Not sent";}

私を助けてください !

4

1 に答える 1

0

PHP からのメール送信に関する IME の問題のほとんどは、MTA の問題であり、PHP とは関係ありません。システムがメールの送信を停止したが、PHP が変更されていない場合は、おそらくこれも当てはまります。

これが実行されているOSや、メールを使用するようにPHPがどのように構成されているかについての情報は提供していません。これは、オペレーティングシステムによって大きく異なります。

しかし、受信トレイにメールが届きません

メールを送信してから目的地に到着するまでには、さまざまなことが起こります。通常は、送信側の MTA によって送信のキューに入れられ、受信側の MTA に (オプションで中間 MTA を介して) 渡され、受信側でポリシー チェックが適用され、受信側の imap/pop サービスに渡されます (メール クライアントによって取得されます (ここでもさらにポリシー チェックが行われます)。

プロセスの各ステップを調べて、どこが失敗しているかを調べる必要があります。

mysql_real_escape_string($_POST['friendemail']);

なんてこと?これは間違っています。

$header="Content-type: text/html\n";

SMTP を介して非 7 ビット ascii を強制しようとしても、自分に有利にはなりません。最近では、それが大きな問題になることはなく、エラーの原因である可能性は低いですが、プレーン テキスト メッセージを送信してみて、何が起こるかを確認してください。

ああ...そしてあなたのコードをもう一度見てみると、あなたはプレーンテキストを送信しているので、WTFはhtmlヘッダーですか?

配信可能性の保証が必要な場合は、これが問題の原因でない場合でも、メールのエンコードを修正してください。

于 2012-05-01T10:25:46.470 に答える