1

正しい日である場合にのみ受信者に送信する電子メール送信リストをmysqlデータベースから作成しようとしています.1人ごとに個別の電子メールを送信したいのですが、全員が"To: "現場にいれば問題ありません. これが私が持っていないものです

 <?
 $freq=date("N");

//get email address's

$result = mysql_query("SELECT * FROM email_list ");

while($row = mysql_fetch_array($result))
{

 if($row['period']=="daily"){     
 $to="To: ".$row['name']." <".$row['email'].">\r\n";
 $subject="Your exchange rate update";
 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .="To: ".$row['name']." <".$row['email'].">\r\n";
 $headers .= "From: ME <me@me.com>" . "\r\n";
 mail($to, $subject, $email, $headers);
 }
 if($row['period']==$freq){
   $to="To: ".$row['name']." <".$row['email'].">\r\n";
 $subject="Your exchange rate update";
 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .="To: ".$row['name']." <".$row['email'].">\r\n";
 $headers .= "From: name <me@me.com>" . "\r\n";
 mail($to, $subject, $email, $headers);
     }

}   
 ?>

メールは送信されず、エラー メッセージも表示されません。

4

5 に答える 5

1

に最初のパラメーターとして渡される文字列に「To:」を入れないでくださいmail()

于 2012-09-06T15:22:57.443 に答える
1

emailテーブルからフィールドのみを選択していますが、メールヘッダーの To アドレスを生成しているときに、 と の両方$row['name']にアクセスしようとしています$row['email']

$row['name']未定義のインデックス警告が表示され、ヘッダーが台無しになり、その後の電子メールが送信される可能性があります。

更新:クエリをselect *ではなく に更新したようですselect email。ヒントとして、質問をそのように黙って更新するのではなく、コメントで更新し、投稿された元のコードに基づいて、あなたが行った変更が助けになったか、動作を変更したかどうかを人々に知らせてください。

誰かが質問に投稿されたコードを見て、投稿された回答がまったく関係がないことに気付くと、難しくなります..

于 2012-09-06T15:23:06.707 に答える
0

メールを選択すると、$row 配列には $row["email"] のみが含まれます

また、メール機能の応答をエコーし​​、エラー報告をオンにしてみてください:

error_reporting(-1);

また、このコードが実行されているシステムでメール サーバーが機能している必要があります。

http://php.net/manual/en/function.mail.php

于 2012-09-06T15:22:13.670 に答える
0

「メール」のみを選択します。$row['period']クエリで選択されていないため、空です。両方とも False の場合、電子メールは送信されません。

于 2012-09-06T15:23:09.343 に答える
0

これを試して

<?
 $freq=date("N");

//get email address's

$result = mysql_query("SELECT * FROM email_list ");

while($row = mysql_fetch_array($result))
{

 if($row['period']=="daily"){     
 $to=$row['name']." <".$row['email'].">\r\n";
 $subject="Your exchange rate update";
 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .="To: ".$row['name']." <".$row['email'].">\r\n";
 $headers .= "From: ME <me@me.com>" . "\r\n";
 mail($to, $subject, $email, $headers);
 }
 if($row['period']==$freq){
   $to=$row['name']." <".$row['email'].">\r\n";
 $subject="Your exchange rate update";
 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .="To: ".$row['name']." <".$row['email'].">\r\n";
 $headers .= "From: name <me@me.com>" . "\r\n";
 mail($to, $subject, $email, $headers);
     }

}   
 ?>
于 2012-09-06T15:24:53.047 に答える