PHPMailer发送邮件提示553 Mail from must equal authorized user的原因是SMTP服务器用户名与发件人邮箱不一致,修改成相同即可解决这个问题。

/**

*系统邮件发送函数

*@paramstring$tomail接收邮件者邮箱

*@paramstring$name接收邮件者名称

*@paramstring$subject邮件主题

*@paramstring$body邮件内容

*@paramstring$attachment附件列表

*@returnboolean

*@authorstatic7

*/

functionsend_mail($tomail,$name,$subject='',$body='',$attachment=null){

$mail=new\PHPMailer\PHPMailer\PHPMailer();

$mail->CharSet='UTF-8';

$mail->IsSMTP();

$mail->SMTPDebug=0;

$mail->SMTPAuth=true;

$mail->SMTPSecure='ssl';

$mail->Host="smtp.163.com";

$mail->Port=465;

$mail->Username="test@163.com";//SMTP服务器用户名

$mail->Password="******";//SMTP服务器密码与邮箱密码不同

$mail->SetFrom('test@163.com','测试邮件');//此处的邮箱应该与上面的SMTP服务器用户名一致

$replyEmail='';

$replyName='';

$mail->AddReplyTo($replyEmail,$replyName);

$mail->Subject=$subject;

$mail->MsgHTML($body);

$mail->AddAddress($tomail,$name);

if(is_array($attachment)){

foreach($attachmentas$file){

is_file($file)&&$mail->AddAttachment($file);

}

}

return $mail->Send()?true:$mail->ErrorInfo;

}

Logo

鸿蒙生态一站式服务平台。

更多推荐