Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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 Mailer获取正文中的当前电子邮件id_Php_Email_Bcc - Fatal编程技术网

如何使用PHP Mailer获取正文中的当前电子邮件id

如何使用PHP Mailer获取正文中的当前电子邮件id,php,email,bcc,Php,Email,Bcc,目前,我正在使用PHPMailer`library编写一个PHP电子邮件脚本。我正在使用密件抄送发送所有电子邮件地址的群发邮件 我希望每封邮件都在邮件正文中包含当前收件人的电子邮件地址 下面是我的示例代码: <?php require 'PHPMailerAutoload.php'; $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = 's

目前,我正在使用PHPMailer`library编写一个PHP电子邮件脚本。我正在使用密件抄送发送所有电子邮件地址的群发邮件

我希望每封邮件都在邮件正文中包含当前收件人的电子邮件地址

下面是我的示例代码:

<?php
 require 'PHPMailerAutoload.php';
 $mail = new PHPMailer;
 $mail->isSMTP();                                      
 $mail->Host = 'smtp1.example.com;smtp2.example.com';  
 $mail->SMTPAuth = true;                                
 $mail->Username = 'user@example.com';                 
 $mail->Password = 'secret';                           
 $mail->SMTPSecure = 'tls';                         
 $mail->Port = 587;                               
 $mail->setFrom('from@example.com', 'Mailer');
 $mail->addAddress('noreply@example.com');

 $arrMail [] = array('bcc1@example.com','bcc2@example.com'); 

 for($i=0;$i<count( $arrMail);$i++)
 {
     $mail->addBCC($arrMail[$i]);
     $htmlversion = 'Hello '.$arrMail[$i].' !'.
 }


//  $htmlversion = 'Hello <email_id needed here> !'.

  $mail->Body    = $htmlversion;
  $mail->AltBody = $textVersion;   

      if(!$mail->send()) 
      {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
      }
      else
      {
        echo 'Mail sent';
      } 

您的代码正在重用相同的电子邮件地址,因为您没有将邮件正文的创建放在循环中。如果使用循环,则也不需要BCC

$arrMail [] = array('bcc1@example.com', 'bcc2@example.com'); 
$total = count($arrMail);

for($i = 0; $i < $total; $i++) {

    $email = $arrMail[$i];
    $htmlversion = "Hello $email !";

    $mail->Body = $htmlversion;
    $mail->AltBody = $textVersion;
    $mail->AddAddress($email);

    if (!$mail->send()) {
       echo 'Message could not be sent.';
       echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
       echo 'Mail sent';
    }
}
$arrMail[]=数组('bcc1@example.com', 'bcc2@example.com'); 
$total=计数($arrMail);
对于($i=0;$i<$total;$i++){
$email=$arrMail[$i];
$htmlversion=“你好$email!”;
$mail->Body=$htmlversion;
$mail->AltBody=$textVersion;
$mail->AddAddress($email);
如果(!$mail->send()){
echo“无法发送消息”;
回显“邮件错误:”。$mail->ErrorInfo;
}否则{
回显“已发送邮件”;
}
}
我不想一个接一个地发送邮件,就像其他页面中提到的那样


不幸的是,密件抄送的本质是将同一封电子邮件发送给多个收件人。如果您想为每个人定制每封电子邮件,您必须向他们发送单独的电子邮件。

您的代码正在重用相同的电子邮件地址,因为您没有将邮件正文的创建放在循环中。如果使用循环,则也不需要BCC

$arrMail [] = array('bcc1@example.com', 'bcc2@example.com'); 
$total = count($arrMail);

for($i = 0; $i < $total; $i++) {

    $email = $arrMail[$i];
    $htmlversion = "Hello $email !";

    $mail->Body = $htmlversion;
    $mail->AltBody = $textVersion;
    $mail->AddAddress($email);

    if (!$mail->send()) {
       echo 'Message could not be sent.';
       echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
       echo 'Mail sent';
    }
}
$arrMail[]=数组('bcc1@example.com', 'bcc2@example.com'); 
$total=计数($arrMail);
对于($i=0;$i<$total;$i++){
$email=$arrMail[$i];
$htmlversion=“你好$email!”;
$mail->Body=$htmlversion;
$mail->AltBody=$textVersion;
$mail->AddAddress($email);
如果(!$mail->send()){
echo“无法发送消息”;
回显“邮件错误:”。$mail->ErrorInfo;
}否则{
回显“已发送邮件”;
}
}
我不想一个接一个地发送邮件,就像其他页面中提到的那样


不幸的是,密件抄送的本质是将同一封电子邮件发送给多个收件人。如果你想为每个人定制每封电子邮件,你必须向他们发送单独的电子邮件。

你必须使用不带密件抄送的循环发送。我之所以使用密件抄送是为了隐藏其他邮件。
bcc
是为了隐藏其他邮件。将所有电子邮件放在一个数组中,并针对该数组运行foreach循环。@RahulDambare你能说得具体一点吗,在数组中收集特定收件人后,我应该如何在正文中获取他们的电子邮件id?您必须使用不带bcc的循环发送。我这样做的原因是隐藏其他邮件。
bcc
。将所有电子邮件放在一个数组中,并为该数组运行foreach循环。@RahulDambare您能稍微具体一点吗,在数组中收集特定收件人后,我应该如何在正文中获取他们的电子邮件id?原因是我使用了
bcc
,这样一个收件人就看不到其他收件人的邮件id。还有
Cc
?@Hiranya,无论您是否愿意,如果要更改每个收件人的电子邮件正文,则不可能使用密件抄送或抄送。密件抄送或抄送的意义在于将同一封电子邮件复制给每个人。我之所以使用
BCC
,是为了让一个收件人看不到其他收件人的邮件id。还有
CC
?@Hiranya无论你愿意与否,如果你想更改每个收件人的邮件正文,就不可能使用密件抄送或抄送。密件抄送或抄送的意义在于将相同的电子邮件复制给每个人。