使用PHP发送电子邮件给多个收件人

4

我有一些PHP代码,用于发送电子邮件到特定的电子邮件地址。然而,当发送时,我想在PHP中包含另外几个电子邮件地址。但是,当我尝试执行时,出现以下错误:

错误:邮件程序错误:您必须至少提供一个收件人电子邮件地址。

代码

include "class.phpmailer.php"; // include the class file name
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
//$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "mail.authsmtp.com";
$mail->Port = "25"; // or 587
$mail->IsHTML(true);
$mail->Username = "xxxxx";
$mail->Password = "xxxxx";
$mail->SetFrom("cpn@xxxxxxx.com");
$mail->Subject = $sub1;
$mail->Body = $text_mail;
$mail->AddAddress("xxxxxxx@gmail.com;aral@xxxxxx.com;akhader@xxxxxx.com");
 if(!$mail->Send()){
 echo "Mailer Error: " . $mail->ErrorInfo;
}
else{
 echo "Message has been sent";
}

任何人能指导我如何做到这一点。

1
可能是PHP邮件发送器多个地址的重复问题。 - Suresh Kamrushi
7个回答

8

修改这一行

$mail->AddAddress("xxxxxxx@gmail.com;aral@xxxxxx.com;akhader@xxxxxx.com");

转换为:

$mail->AddAddress("xxxxxxx@gmail.com");
$mail->AddAddress("aral@xxxxxx.com");
$mail->AddAddress("akhader@xxxxxx.com");

你可以无限次运行该函数,直到得到你需要的所有地址。 点击此处查看更多信息

2

看起来您误用了AddAddress方法。您应该像这样单独传递每个邮件地址:

$mail->AddAddress("xxxxxxx@gmail.com");
$mail->AddAddress("aral@xxxxxx.com");
$mail->AddAddress("akhader@xxxxxx.com");

请查看PHPMailer AddAddress()获取更多详细信息。


2

如果您想向多个地址发送电子邮件,您需要针对每个电子邮件地址调用AddAddress()函数。第一个参数是电子邮件地址,第二个参数是收件人名称,这是可选的。

$mail->AddAddress("xxxxxxx@gmail.com", "XXXXXXXX");
$mail->AddAddress("aral@xxxxxx.com", "Aral");

@Bleeding Fingers,感谢指出! - Krish R

0

试试这个

$mail->AddAddress("xxxxxxx@gmail.com");
$mail->AddAddress("aral@xxxxxx.com");
$mail->AddAddress("akhader@xxxxxx.com");

0

改为:

$mail->AddAddress("xxxxxxx@gmail.com;aral@xxxxxx.com;akhader@xxxxxx.com");

你应该使用

$mail->AddAddress('xxxxxxx@gmail.com', '1');
$mail->AddAddress('aral@xxxxxx.com', '2');
$mail->AddAddress('akhader@xxxxxx.com', '3');

或者使用CC副本:

$mail->AddCC('xxxxxxx@gmail.com', '1');
$mail->AddCC('aral@xxxxxx.com', '2');
$mail->AddCC('akhader@xxxxxx.com', '3');

0

试试这个...... 这可能会对你有所帮助

<html>
<body>

  <?php
  if (isset($_REQUEST['email']))
 //if "email" is filled out, send email
 {
 //send email
 $email = $_REQUEST['email'] ;
 $subject = $_REQUEST['subject'] ;
 $message = $_REQUEST['message'] ;
      mail("chauhanamrish32@gmail.com,amrinderpuri1990@gmail.com,amrinder_puri@yahoo.com,amrindersinghpuri13@gmail.com", $subject,$message, "From:" . $email);
  echo "Thank you for using our mail form";
  }
  else
//if "email" is not filled out, display the form
{
echo "<form method='post' action='mail.php'>
Email: <input name='email' type='text'><br>
Subject: <input name='subject' type='text'><br>
Message:<br>
<textarea name='message' rows='15' cols='40'>
</textarea><br>
<input type='submit'>
 </form>";
  }
?>


0

看一下这里 PHPMailer AddAddress()

并且注意你的代码行:

  $mail->AddAddress("xxxxxxx@gmail.com;aral@xxxxxx.com;akhader@xxxxxx.com");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接