发送电子邮件时出现 SMTP 错误:发件人地址必须包含域


smtp error on sending email : sender address must contain a domain

嗨,当我尝试发送电子邮件时收到此错误

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 不应该设置为电子邮件地址吗?