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 次消息。如何使消息仅包含在内并发送到每行一次?

4

2 回答 2

0

要么遵循上述建议(好方法),要么简单地删除连接运算符“。” 对变量 $message 进行第一次赋值,即更改

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

您应该从 while 循环中删除 $subject、$message、$from 和 $headers 定义。在之前和期间定义所有这些,只定义 $to 字段并保留 mail() 命令。

于 2013-09-09T10:38:21.280 回答