我正在使用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文档中涵盖了这一点。这也是一个合理的限制 - 否则,您可能会从地址伪造。如果您关注的回复路由,您可以随时设置一个回复地址。