嗨,当我尝试发送电子邮件时收到此错误
SMTP -> ERROR: MAIL not accepted from server: 501 : sender address must contain a domain
它曾经工作正常,我不确定发生了什么我使用PHP mailer,但我认为这并不重要
$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();
}
错误消息有点
误导,但问题很明显。 From:
标头必须包含一个域作为完整的电子邮件地址。 如果您的$smtp->from
包含 www.mysite.com
,则为无效的电子邮件地址,缺少 @
后面的部分。 邮件发送者将您的域名误解为仅是电子邮件地址的第一部分(用户部分),并抱怨它需要@domain
才能使用。 向$smtp->from
媒体资源提供完整的发件人电子邮件地址。
// Should be something like sender@example.com
$mail->From = $smtp->from ;
$mail->From 不应该设置为电子邮件地址吗?