8

メールが 2 つのバニティ Gmail アカウントに送信される 2 つのサイトがあります。PHP を使用してメールを処理していますが、メールが gmail に表示されません (スパム/ジャンクではなく、表示されないだけです)。PHP を個人の hotmail アカウントに送信するように切り替えると、メールが表示されます。ISP を介した個人のメール アカウントについても同様です。

メールはこれら 2 つのバニティ Gmail アカウントに表示されていましたが、停止する理由はありますか?

4

5 に答える 5

8

適切なヘッダーデータを設定していない可能性があり、それらの電子メールはスパムフォルダに到達する前でもブロックされます。

次のようなものを追加してみてください。

$headers = 'From: your@email.com' . "\r\n" .
'Reply-To: some@email.com';

これはmail()関数の4番目のパラメーターです。

于 2009-05-13T17:51:41.410 に答える
4

過去に、特定の無料メール プロバイダーがサーバーからメールを受信しないという問題に遭遇しました。

実際のメッセージに正しいヘッダーを配置することに加えて、いくつかのことが原因であることがわかりました。

PHP は問題なくメールを送信している可能性がありますが、Google サーバーはサーバーからのメッセージを拒否しています。

簡単に実行してこれをテストできます。

mail -s Test you@gmail.com < /dev/null

サーバーに問題がなければ、Gmail にメッセージが届きます。そうでない場合は、PHP に問題はありません。

于 2009-05-14T03:30:33.713 に答える
2

ドメインに適切な SPF レコードがあると本当に役立つことがわかりました

http://www.openspf.org/SPF_Record_Syntax

于 2009-05-14T17:04:04.023 に答える
0

手遅れだと思いますが...次のコードはGmailで機能しています。

<html>
Mail Responder:<br><br>
<?php 
$to = $_REQUEST['MyEmail'] ; 
$subject = $_REQUEST['subject'] ; 
$greeting = $_REQUEST['greeting'] ; 
$realname = $_REQUEST['realname'] ;
$HisEmail = $_REQUEST['HisEmail'] ; 
$message = $_REQUEST['message'] ;
$headers = 'From: '.$HisEmail;  
//$headers = 'From: $HisEmail' . "\r\n" .
//'Reply-To: some@email.com';

$send = mail($to, $subject, $greeting."\n"."\n".$realname."\n"."\n".$HisEmail."\n"."\n".$message, $headers );
if ($send)
$mailReturns = "Mail sent successfully.";
else
$mailReturns = "Mail sent failed.";

?>
<?php echo $mailReturns; ?>
</html>
于 2010-02-21T09:44:57.347 に答える
0

これは、PHP の問題ではなく、サーバーの構成の問題である可能性が高いようです。

補足として、gmail はローカル システムよりも寛容であることがわかったので、gmail アカウントにメッセージを送信できましたが、ホスティング ドメインのアカウントには送信できませんでした。

Google がサード パーティのブラック リストを使用しているとは思いませんが、サーバーの構成に注意を払っています (正しく識別されているか、SPF と RDNS レコードが一致しているか、コマンドに適切に応答しているか)。thisまたはthisのようないくつかのテスト サービスを試すことができます。

于 2009-05-14T17:16:56.257 に答える