0

私のウェブサイトにサインアップした電子メールにニュースレターを送信するために、php で設定したページがあります。先日、コードを 30 通のメールに送信したところ、コードは問題なく機能しました。全員がメールマガジンを受け取りました。2 人の新しい人がサインアップし、1 つを送信しようとすると、コードにエラーがなく送信されたかのように処理されますが、誰もニュースレターを受信しません。

無効な電子メール アドレスが機能しなくなったことと何か関係がありますか? 新しいものの1つが有効ではなく、シャットダウンするかのように?コードが機能していたときから以前の 30 通のメールまで、コードを変更することは何もしませんでした。私のホスティング会社は 1 日に 250 通以上の電子メールを許可しているので、それはまったく問題ではありません。

$mailto = "members@example.com" ;
$headers = "From: chris@example.com \r\n";
$headers .= "Reply-To: chris@example.com \r\n";
$headers .= "BCC: $emails \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$from='members@example.com';
$subject="TEST";
$body='<html><body>';
$body.= "<table><tr><td>$content etc...</td></td> </body></html>";
if (mail($mailto,$subject,$body,$headers)) { 
code... ; } 
else { 
code... ; }
4

2 に答える 2

1

私がすることは、GoogleなどのSMTPサーバーとPHPMailer、または同様のものを使用することです。PHP でのメール機能の使用は少し危険な場合があるため、これはおそらくあなたにとっても最良の解決策です。多くのメール サーバーは、これらのメールが既知のサービスによって送信されていないため、スパムであると考えています。まず、未受信の電子メールが迷惑メール フォルダに入っているかどうかを確認してください。そうでない場合、および PHPMailer を実装する時間がない場合は、PHP スニペット コードから手動でメールを送信してみてください。実際に何が起こるかを確認してください。

于 2012-06-01T15:32:52.120 に答える
0

この行に基づいて:

$headers .= "BCC: $emails \r\n";

すべての受信者を 1 つのヘッダー行に入れます。

これは、少なくとも 3 つの理由で失敗する可能性があります。

  1. この行が 998 文字を超えるとすぐに、メッセージはrfc2822に違反するため、メール サーバーはそれを拒否する可能性があります。

  2. ほとんどの SMTP サーバーには、1 つのメッセージの受信者数に制限があるため、ある時点でこの制限に達します (ただし、30 人の受信者はそれほど多くないように見えます)。

  3. 電子メール アドレスに重大な構文エラーがあると、行全体が無効になる可能性があります。

また、ここで使用されている SMTP サーバーを知っておくと役立つ場合があります。メールサーバーのログにアクセスできる場合は、明らかにそれも確認する必要があります。

To回避策として、サブスクライバーのリストをループして、フィールド内の各サブスクライバーに 1 つの異なるメッセージを送信し、まったく使用Bccしないようにすることができます。とにかく、これはスパムフィルターを通過するのにも適しています.

于 2012-06-01T18:39:06.740 に答える