原创| 开发动态| 2020-03-17| 阅读 396 次 | 5赞同 12反对
概述:关于这个主题网络上的答案是千篇一律,并没有真正的解决PHP通过设置SMTP来发送群发邮件只显示个人邮箱的功能。
为了减少更多的开发者在这个上面浪费时间,今天板砖分享一下我的实施代码,虽然不是新发明发现,不过也是一种实操思路!
我的思路是:
$sendto = ""; //主要发送
$cc = ""; //抄送
$bcc = ""; //秘密抄送
//***************判断发送的是1个人还是一群人,大于2人的时候就群发单显
$list = explode(",", $to);
if (count($list) > 1) {
$sendto = $list[0];
$bcc = str_replace($sendto . ",", "", $to);
} else {
$sendto = $to;
}
//******************** 配置信息 ********************************
$smtpserver = $host; //SMTP服务器,ignore ssl is normal send type
$smtpserverport = $port; //SMTP服务器端口 25,994 is ssl send
$smtpusermail = $sendfrom; //SMTP服务器的用户邮箱
$smtpemailto = $sendto; //发送给谁
$smtpuser = $nick; //SMTP服务器的用户帐号,注:部分邮箱只需@前面的用户名
$smtppass = $password; //SMTP服务器的授权码
$mailtitle = $subject; //邮件主题
$mailcontent = $msg; //邮件内容
$mailtype = "HTML"; //邮件格式(HTML/TXT),TXT为文本邮件
//************************ 配置信息 ****************************
$smtp = new Smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = false; //是否显示发送的调试信息
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype, $cc, $bcc);
if ($state == "") {
return false;
}
return true;
本频道需要登陆后才能评论,请登录