无法使用phpmailer和smtp.gmail.com设置自定义发送者电子邮件



我正在使用phpmailer和smtp.gmail.com向我的用户发送电子邮件。发送电子邮件,这没问题,但是在客户端,在发送者电子邮件地址中,有我的服务器主机电子邮件地址,而不是使用phpmailer-> setfrom((设置的我的电子邮件地址。我想将电子邮件地址设置为发送者电子邮件。我正在使用PHP 5.4&phpmailer 5.2.4我的代码如下:

<?php 
    require_once('class.phpmailer.php');
    $mail = new PHPMailer(true); 

    try {
      $mail->SMTPDebug  = 2;
      $mail->SMTPAuth   = true;                  
      $mail->SMTPSecure = "ssl";                 
      $mail->Host       = "smtp.gmail.com";      
      $mail->Port       = 465;                   
      $mail->Username   = "myemail@gmail.com";  
      $mail->Password   = "PASSWORD";
      $mail->AddAddress('receiver@email.com', 'John Doe');
      $mail->SetFrom('myemail@email.com', 'My Name');
      $mail->addReplyTo('myemail@gmail.com', 'My Name');
      $mail->Subject = 'PHPMailer Subject';
      $mail->MsgHTML('This is the body');
      $mail->Send();
      echo "Message Sent";
    } catch (phpmailerException $e) {
      echo $e->errorMessage();
    } catch (Exception $e) {
      echo $e->getMessage(); 
    }

?>

这是一个gmail的限制 - 它不允许您从地址设置任意设置,尽管您可以在Gmail首选项中设置固定的别名。phpmailer文档中涵盖了这一点。这也是一个合理的限制 - 否则,您可能会从地址伪造。如果您关注的回复路由,您可以随时设置一个回复地址。

最新更新