1

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

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();
       }
4

2 回答 2

4

错误消息有点误导,但问题很清楚。标From:头必须包含一个域作为完整的电子邮件地址。如果您的$smtp->fromcontains www.mysite.com,那是一个无效的电子邮件地址,缺少 . 之后的部分@。邮寄者将您的域名误解为只是电子邮件地址的第一部分(用户部分),并抱怨它需要@domain与它一起使用。$smtp->from向您的物业提供完整的发件人电子邮件地址。

 // Should be something like sender@example.com
 $mail->From       =  $smtp->from ; 
于 2012-04-15T13:03:54.470 回答
0

不应该将 $mail->From 设置为电子邮件地址吗?

于 2012-04-15T13:03:29.723 回答