向大量人发送邮件

Par*_*dar 6 php phpmailer

我在StackOverflow上已经阅读了很多关于这个问题的问题和答案,但我读过的都没有具体回答我的问题.

我不想有邮件列表.如果用户希望收到批量电子邮件,则会勾选一个框.没有错误的电子邮件,因为帐户是使用电子邮件激活的.所以没有反弹检查.但是,我已经使用了PHPMailer(因此没有标题等问题)并将每个地址添加到电子邮件的"to"字段中.这意味着每个人都可以查看所有电子邮件(通过阅读电子邮件来源或点击其电子邮件客户端中的"回复所有"),这是其他用户不可取的.问题是:

1)我应该单独发送每封电子邮件,还是将所有地址都放在"密件抄送"字段中?2)这不会使一些邮件服务器将电子邮件标记为"垃圾邮件",无论它的结构如何良好?如果是这样,有没有办法进一步防止这种情况(除了将地址添加到某些白名单或设置域密钥或Unix cron作业)?

谢谢!

这里提到的所有内容都要求用户使用表单"订阅",然后确认他们的电子邮件地址(就像在PHPList中一样).但是,当人们注册时我已经要求确认,所以一次又一次地询问他们是没有意义的.我现有的代码检查数据库; 如果他们的"receive-movie-mail"位设置为1(这些是使用sql查询收集的),则在将新电影添加到数据库时会向他们发送电子邮件.所以,如果你还相信这是一个邮件列表(我觉得的的确是,但也许我的定义违背了现有软件的功能),我想它有,1)订阅用户以列表的一些方法PHP代码(例如,如果"我想收到一封电子邮件,每次电影上传到数据库的时间"复选框被选中,在我的表单处理的代码,我会订阅它们),和2)的方式邮寄用PHP的人( IE是一个类似send_mail_to_list($ content)的函数,当提交"添加电影"表单时,它会将电子邮件发送给我订阅的人.有这样的邮件列表管理软件吗?

Ada*_*ulp 3

您应该遍历电子邮件列表并为每个地址发送一封单独​​的电子邮件:

$mail = new PHPMailer();
$mail->IsSMTP();           // set mailer to use SMTP
$mail->Host = "mail.{domain_name}.com";    // specify main and backup server
$mail->SMTPAuth = true;           // turn on SMTP authentication
$mail->Username = "{username}";   // SMTP username
$mail->Password = "{password}";      // SMTP password

$emailFrom  = '{email_address}';

$mail->From = $emailFrom;
$mail->IsHTML(true);    // set email format to HTML if needed

$emailSubject = '{your subject}';
$emailBody  = "Whatever content you are sending.";

$mail->Subject = $emailSubject;
$mail->Body    = $emailBody;

foreach($emails => $email) {

    $emailTo = $email['email'];
    $emailToName = $email['name'];

// send an email to customer
    $mail->AddAddress($emailTo, $emailToName);

    if(!$mail->Send())
    {
        echo 'failed';
    }

    $mail->ClearAddresses();
}
Run Code Online (Sandbox Code Playgroud)