我使用gmail SMTP在phpmailer库的帮助下发送邮件。它可以正常发送邮件,但不是从我在SetFrom地址中设置的邮件地址发送。下面是我的代码:
<?php
require 'phpmailer/class.phpmailer.php';
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "myusername@gmail.com";
$mail->Password = "gmail_password";
$mail->From = 'donotreply@mydomain.com';
$mail->FromName = 'Admin';
$mail->AddAddress('Toreceiver@test.com', 'Receiver'); // Add a recipient
$mail->IsHTML(true);
$mail->Subject = 'Here is the Subject';
$mail->WordWrap = 50;
$mail->Body = "This is in <b>Blod Text</b>";
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->Send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
echo 'Message has been sent';
?>
它从邮件发送邮件,但我希望它使用$ myusername@gmail.com -> from中设置的'donotreply@mydomain.com‘发送邮件。任何帮助都将受到高度的感谢。
发布于 2015-08-22 09:01:12
是的,这是谷歌邮件的限制。“发件人”电子邮件地址必须匹配或由Google SMTP自动设置。
我的解决方案是添加
$mail->AddReplyTo($FromEmail, $FromName);
这样,至少如果你回复了消息,它就会按照描述的那样被传递
发布于 2015-11-04 14:06:42
在phpmailer中还有另一种设置from地址的方法,它得到了更好的支持。我发现我使用phpmailer的服务器不会将电子邮件从同一台主机传递到另一台服务器。但是后来我改变了设置from地址的方式,这样就解决了问题。
使用:
$mail->SetFrom('donotreply@mydomain.com', 'Admin');
而不是$mail->From和$mail->FromName。
发布于 2017-10-10 08:58:10
如果你想使用不同的电子邮件地址作为sentFrom,那么你可以从gmail设置中设置你的电子邮件:
设置>帐户和导入>发送邮件方式:设置另一个您要使用的电子邮件地址:
如果您使用的是zoho,那么您可以按照以下步骤操作:设置>邮件标签>发送邮件方式>添加发件人地址,然后验证该电子邮件。
https://stackoverflow.com/questions/17085865
复制