Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 邮件脚本正在混合邮件收件人_Php_Email_Phpmailer - Fatal编程技术网

Php 邮件脚本正在混合邮件收件人

Php 邮件脚本正在混合邮件收件人,php,email,phpmailer,Php,Email,Phpmailer,我有一个发送大量邮件的邮件脚本。 此邮件中有一个“取消订阅”按钮,用于填写收件人的邮件地址。 但由于某些原因,当a邮件发送给收件人a时,会填写收件人B的邮件地址 我的脚本片段: <?php //First get 500 mailaddressess to send the mail to $sql = mysql_query( "select mail_id, customers_email_address from " . TABLE_NIEUWSBRIEVEN_MAILING_LIS

我有一个发送大量邮件的邮件脚本。
此邮件中有一个“取消订阅”按钮,用于填写收件人的邮件地址。
但由于某些原因,当a邮件发送给收件人a时,会填写收件人B的邮件地址

我的脚本片段:

<?php
//First get 500 mailaddressess to send the mail to
$sql = mysql_query( "select mail_id, customers_email_address from " . TABLE_NIEUWSBRIEVEN_MAILING_LIST . " where nieuwsbrief_id = '" . mysql_real_escape_string( $nID ) . "' and send = 0 order by mail_id limit " . $aantal_verzenden ) or die ( mysql_error() ); 

while ( $mail = mysql_fetch_array( $sql ) )
{        
    $sendmail = new PHPMailer();
    $sendmail->AddReplyTo( $data['afzender_email'], ucfirst( $data['afzender_naam'] ) );                
    $sendmail->AddAddress( $mail['customers_email_address'] );
    $sendmail->SetFrom( $data['afzender_email'], ucfirst( $data['afzender_naam'] ) );

    // This part is filling in the mailadress at the subscribe button.
    $layout = str_replace( '{EMAIL}', $mail['customers_email_address'], $layout );

    $mbEnc = mb_internal_encoding();
    mb_internal_encoding('UTF-8');
    $sendmail->Subject    = str_replace( '€', mb_encode_mimeheader('€', 'UTF-8'), $data['nieuwsbrief_titel'] );
    mb_internal_encoding($mbEnc);

    $sendmail->AltBody = str_replace( '{ONLINE_WEERGAVE}', 'http://myssite.nl/p-' . $data['url'],  str_replace( '{AFZENDER_ID}', $data['afzenderid'], $data['alt_mail'] ) );
    $sendmail->MsgHTML($layout);

    if(!$sendmail->Send()) {
      echo "Mailer Error: " . $sendmail->ErrorInfo . "\r\n";
      mysql_query( "insert into nieuwsbrief_zender_errors ( email, error ) values ( '" . mysql_real_escape_string( $mail['customers_email_address'] ) . "', '" . mysql_real_escape_string( $sendmail->ErrorInfo ) . "' )" );
      mysql_query( "update " . TABLE_NIEUWSBRIEVEN_MAILING_LIST . " set send = 2 where mail_id = '" . mysql_real_escape_string( $mail['mail_id'] ) . "'"  ) or die ( mysql_error() ); 
    } else {
      echo "Bericht succesvol verzonden!";
      echo $mail['customers_email_address'] . "\r\n";
      mysql_query( "update " . TABLE_NIEUWSBRIEVEN_MAILING_LIST . " set send = 1 where mail_id = '" . mysql_real_escape_string( $mail['mail_id'] ) . "'"  ) or die ( mysql_error() ); 
    }

    $sendmail->ClearAddresses();
    $sendmail->ClearAttachments();

}
?>

第一次使用$layout中的$mail['customers\u EMAIL\u address']更改{EMAIL},第二次调用$layout时,您没有{EMAIL}。
您应该填写$layout2=str_replace(“{EMAIL}”、$mail['customers\u EMAIL\u address']、$layout);
并发送$sendmail->MsgHTML($layout2)


那么原来的$layout应该保持不变

最初$layout的值是多少?我担心如果你在foreach中使用相同的$layout值,或者一直使用默认模板重置它?是的,这就是问题所在,我搜索了好几天,我不敢相信我自己没有看到它。是的,这就是问题所在,我搜索了好几天,我不敢相信我自己没有看到它。