0

次のような電子メール アドレスの .csv リストにメッセージを送信する簡単なスクリプトを作成しようとしています。

mail1@mail.com,
mail2@mail.com,
mail3@mail.com,

これが私が試したことです:

<?
$csv = array();
$file = fopen('test.csv', 'r');

while (($result = fgetcsv($file)) !== false){
$csv[] = $result;   

$to          = $result[0];

$subject = "My mail subject";


$message .= '<html><body>';
$message .= 'My message here';
$message .= "</body></html>";


$from = "example@example.com";
$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: ". $from . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

mail($to, $subject, $message, $headers);
}

fclose($file);
?>

ただし、メッセージは 3 回送信され、本文にメッセージが 3 回含まれています。メッセージを各行に 1 回だけ含めて送信するにはどうすればよいですか?

4

2 に答える 2

0

上記の提案 (良いアプローチ) に従うか、単純に連結演算子 "." を削除してください。変数 $message への最初の割り当て、つまり変更

$message .= '<html><body>'; TO
$message = '<html><body>';
于 2013-09-09T11:00:31.887 に答える
0

$subject、$message、$from、および $headers の定義を while ループから削除する必要があります。$to フィールドのみを定義し、mail() コマンドを保持する前とその間にそれらをすべて定義します。

于 2013-09-09T10:38:21.280 に答える