无法使用PHPMailer和smtp.gmail.com设置自定义发件人电子邮件

时间:2017-05-04 18:09:58

标签: phpmailer

我正在使用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(); 
    }



?>

1 个答案:

答案 0 :(得分:1)

这是一个gmail限制 - 虽然您可以在gmail偏好设置中设置固定别名,但它不允许您从地址设置任意内容。这在PHPMailer文档中有所介绍。这也是一个合理的限制 - 否则你可能会伪造来自地址。如果您关注的是回复路由,则可以随时设置回复地址。