原创| 开发动态| 一个月前| 阅读 393 次 | 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;
本频道需要登陆后才能评论,请登录