【问题标题】:PHP Send emails to multiple addresses with amazon SESPHP 使用亚马逊 SES 向多个地址发送电子邮件
【发布时间】:2016-07-07 22:35:10
【问题描述】:

我使用 phpMailer 通过亚马逊 SES 发送电子邮件,我的代码运行良好。当我尝试像这样 $to="abc@gmail.com,def@gmail.com"; 影响多个地址时,我无法向多个地址发送电子邮件; 它不起作用并且我收到此消息错误:邮件程序错误:您必须提供至少一个收件人电子邮件地址。但是当我只有一个地址时,它可以工作。如何将电子邮件发送到多个地址?

$account="username";
$password="password";
 $to="abc@gmail.com";
 $from="peter@gmail.com";
 $from_name="Peter";
 $msg="<strong>test smtp with amazon.</strong>"; // HTML message
 $subject="HTML message";
require 'class.phpmailer.php';

 $mail = new PHPMailer();
 $mail->IsSMTP();
 $mail->CharSet = 'UTF-8';
 $mail->Host = "email-smtp.us-east-1.amazonaws.com";
$mail->SMTPAuth= true;
 $mail->Port = 465; // Or 587
$mail->Username= $account;
$mail->Password= $password;
$mail->SMTPSecure = 'ssl';
$mail->From = $from;
$mail->FromName= $from_name;
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $msg;
$mail->addAddress($to);

if(!$mail->send()){
  echo "Mailer Error: " . $mail->ErrorInfo;
 }else{
 echo "E-Mail has been sent";
  }
 ?>

【问题讨论】:

标签: php email amazon-web-services


【解决方案1】:

您可以将所有电子邮件组成一个数组并执行 foreach 循环。

$to = $_POST['name'];

$emails = explode(',',$to);


$emails = array(
    "email@email.com",
    "email2@email.com",
    "email3@email.com",
    "email4@email.com",
    "email5@email.com", 
    "email6@email.com", 
    "email7@email.com"
);

foreach ($emails as $email){
    $mail->AddAddress($email);
}

【讨论】:

  • 当我应用你的代码时它现在可以工作了,但很抱歉我忘记指定电子邮件地址将来自这样的帖子:$to = $_POST['mail'];我尝试这样做:$emails = array($to => $name);它失败了
  • 我最多发 4 封电子邮件
  • 在单个输入中?
  • 您如何定义电子邮件?您可以将表单发布到问题中吗?
【解决方案2】:

您必须为要添加的每个电子邮件地址使用 addAddress。

$mail->AddAddress('person1@domain.com');
$mail->AddAddress('person2@domain.com');
$mail->AddAddress('person3@domain.com');

来源:https://stackoverflow.com/a/3149528/1790315

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2018-04-01
    • 2015-06-15
    • 1970-01-01
    • 2013-05-25
    • 2015-08-24
    • 2021-04-23
    相关资源
    最近更新 更多