2012-05-01 20 views
0

メールスクリプトがオンラインサーバーにあります。うまく働いていた。しかし今ではありません。私はなぜそれがメールの送信を停止したのか混乱しています。電子メールは送信されたが、受信ボックスには電子メールが受信されていないというメッセージが表示されます。ここに私のPHPスクリプトです:メール機能がサーバー上で機能しなくなりました

$useremail = $_POST['myemail']; 

    $friendemail = $_POST['friendemail']; 

     $name = "support"; 

     $email = "[email protected]"; 

     $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";} 

私を助けてください!

+1

サーバーが動作しなくなったときに変更されたのは何ですか? – Maerlyn

+2

迷惑メールフォルダを確認しましたか?メールサーバーがスパムの到着パターンに近いパターンでメールを受信した場合、スパムメールとして分類される可能性があります。 –

+0

+1テスト電子メールを含む多くの頭痛が迷惑メールフォルダに送られます。 – freshnode

答えて

0

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

これは、どのOSが動作しているか、PHPがメールを使用するように設定されているかについての情報はありませんでした。これはオペレーティングシステムによって異なります。

が、何の電子メールは、電子メールを送信し、それが先だに到着する間にhapen物事の全体の多くがあります受信トレイ

を受信されません。通常は、送信側のMTAが送信するためにキューに入れられ、受信側のMTAに渡されます(オプションで中間MTA経由)。受信側でポリシーチェックが適用され、受信側でimap/popサービスに渡されます可能であればポリシーチェックが追加されます)、メールクライアントによって取得されます(さらにポリシーチェックが行われます)。

プロセスの各ステップを調べて、どこで障害が発生しているかを調べる必要があります。

mysql_real_escape_string($ _ POST ['friendemail']);

WTF?これは間違っています。

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

7ビット以外のASCIIを強制的にSMTP経由で送信しようとすると、あなたは何の恩恵も受けません。今日は、大きな問題ではなく、エラーの原因になる可能性は低いですが、プレーンテキストメッセージを送信して何が起こるかを試してみてください。

oh ...あなたのコードをもう一度見てください。あなたはプレーンテキストを送信していますので、WTFはhtmlヘッダーですか?

配信可能性を保証したい場合は、この場合問題の原因でない場合でも、電子メールのエンコーディングを修正してください。

+0

ほんの数分前に電子メールを送信していましたが、html本文が送信されました。プレーンテキストではありませんでした。 – SAM

+0

助けてください!私はまだ解決策を探しています。 :( – SAM

関連する問題