我在尝试发送电子邮件时遇到此错误
SMTP -> ERROR: MAIL not accepted from server: 501 : sender address must contain a domain
它过去工作正常我不知道发生了什么 我使用php邮件但我不认为这很重要
$smtp = setting::get_smtp( 1 , 'support');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = $smtp->address; //localhost
$mail->CharSet = "utf-8";
$mail->SMTPAuth = true;
$mail->Port = $smtp->port; // 25
$mail->Username = $smtp->username;
$mail->Password = $smtp->password;
$mail->From = $smtp->from ; // www.mysite.com
$mail->AddReplyTo ($smtp->username , $smtp->from ); // noreply@mysite.com //www.mysite.com
$mail->Subject = $title;
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML($msg);
$mail->SMTPDebug = 1;
if( filter_var( $admin_email , FILTER_VALIDATE_EMAIL ) == TRUE ){
$mail->AddAddress($admin_email , "John Doe");
$mail->Send();
}
答案 0 :(得分:4)
错误消息有点误导,但问题很明显。 From:
标头必须包含域作为完整的电子邮件地址。如果您的$smtp->from
包含www.mysite.com
,这是一个无效的电子邮件地址,则会遗漏@
之后的部分。邮件程序将您的域名误解为电子邮件地址的第一部分(用户部分),并抱怨它需要@domain
。为您的$smtp->from
媒体资源提供完整的发件人电子邮件地址。
// Should be something like sender@example.com
$mail->From = $smtp->from ;
答案 1 :(得分:0)
不应该是$ mail->从设置为电子邮件地址?