Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php邮件发送到csv列表_Csv_Php_Fgetcsv - Fatal编程技术网

将php邮件发送到csv列表

将php邮件发送到csv列表,csv,php,fgetcsv,Csv,Php,Fgetcsv,我正在尝试编写一个简单的脚本,将邮件发送到.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];

我正在尝试编写一个简单的脚本,将邮件发送到.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);
?>


但是消息被发送三次,并且在正文中包含消息三次。如何使消息只包含在其中并发送到每行一次?

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

遵循上述建议(好方法)或简单地删除连接运算符“.”将第一个赋值形式转换为变量$message,即更改

$message .= '<html><body>'; TO
$message = '<html><body>';
$message.='';到
$message='';

啊,太简单了!非常感谢。“上述建议”是指Lelio Faieta提供的建议