我想通过 gmail 从 A 向 B 发送一封电子邮件,其中包含 HEADER 和 CONTENT。
如何用 PHP 做到这一点?
我已指定 FROM (from@example.com
),但当我收到电子邮件时,它仍然来 self 的 Gmail 帐户 (abc@gmail.com
)。
$mail->From = "from@example.com";
$mail->FromName = "Mailer";
$mail->AddAddress("abc12@163.example", "Josh Adams");// name is optional
$mail->AddReplyTo("abc12@qq.example", "Information");
如何更改 FROM 部分?
最佳答案
简短的回答 - 你不能。
Google 会将您通过其 SMTP 服务发送的邮件中的发件人和回复 header 重写为与您的 Gmail 帐户相关的值。
gmail 的 SMTP 功能并非旨在成为开放或中继服务。如果允许“发件人” header 使用任何值,则会严重削弱 Google 在垃圾邮件服务方面的地位,因为无法验证发件人的凭据。
您需要考虑替代方案。完成后您打算如何托管您的脚本/应用程序/网站:几乎每个托管解决方案(共享/vps/专用服务器)都将预先配置电子邮件传输解决方案:无论是 *nix 上的 sendmail 或 postfix,还是 Windows 上的 IIS。
如果您打算使用 Gmail,那么您可以:
- 设置专用的
myapp@gmail.com
帐户 - 如果您拥有要发送邮件的域名,请使用 free gmail for domains ,并设置一个
myapp@mydomain.example
帐户。
====
编辑 2015 年 6 月
有人建议 GMail 允许 sending via different addresses 。据我所知,这是通过 GMail wep 应用程序发送的,并利用您现有的外部 SMTP 服务器,这与原始问题无关。
====
2013 年 11 月编辑
看来这仍然得到了少量的选票。快速更新。
Google 已撤回免费的域名 GMail。周围还有很多其他免费服务。值得注意的是 Mandrill - 用于交易电子邮件(例如电子商务订单等)的一对一电子邮件服务。它由 MailChimp 运营,他几乎了解有关批量发送电子邮件的所有知识。他们还免费给你 12k/月,这相当不错。
关于php - 使用 gmail smtp 服务器时如何更改发件人地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29696968/