【发布时间】:2013-06-13 11:23:38
【问题描述】:
我在 phpmailer 库的帮助下使用 gmail SMTP 发送邮件。它可以正常发送邮件,但不是从我在 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 发送邮件,但我希望它使用 $mail->From 中设置的“donotreply@mydomain.com”发送。任何帮助将不胜感激。
【问题讨论】:
-
@Anigel :假设您正在制作联系表格并使用 phpmailer 发送邮件。发件人地址将是用户在电子邮件地址字段中填写的内容,而 toAddress 将是您的电子邮件 ID。在那种情况下,每次对于不同的用户,fromEmail 总是不同的。所以,我们需要在 $mail->From 中设置它。这就是我正在做的事情。我认为它与您的链接文章没有任何关系。
-
我想你还没有读过这篇文章,谷歌说你只能从你的谷歌账户中配置的地址发送。您不能只以 jo.bloggs 身份登录并从 jane.doe 发送电子邮件并且您将在许多邮件服务器上过滤或阻止垃圾邮件,因为您的邮件服务器与来自地址 IE 的用户的正确邮件服务器不匹配,它将无法通过 SPF 检查
-
你的意思是说,如果我们正在创建一个联系表单,我们不应该使用 phpmailer,因为它可以阻止许多邮件......
-
不,我的意思是 gmail 只允许您从与您的 google 帐户关联的地址发送电子邮件。使用 phpmailer、通用 php、c、java 或任何语言都没有关系,因为它是对您尝试使用的 google 邮件服务器的限制,而不是对 phpmailer 的限制。