使用gmail smtp服务器时如何更改from-address

omg*_*omg 23 php email gmail smtp

我想通过gmail 发送一封从AB的电子邮件,其中包含HEADERCONTENT.

如何通过PHP做到这一点?

我已经指定了FROM(from@example.com),但是当我收到电子邮件时,它仍然来自我的Gmail帐户(abc@gmail.com).

地址http://maishudi.com/mail.jpg的屏幕截图

$mail->From = "from@example.com";
$mail->FromName = "Mailer";
$mail->AddAddress("abc12@163.com", "Josh Adams");// name is optional
$mail->AddReplyTo("abc12@qq.com", "Information");
Run Code Online (Sandbox Code Playgroud)

如何更改FROM部分?

Ian*_*Ian 47

简短的回答 - 你不能.

Google会将您通过其SMTP服务发送的邮件中的"发件人"和"回复"标题重写为与您的Gmail帐户相关的值.

gmail的SMTP功能不是开放或中继服务.如果它允许From标头的任何值,它将显着淡化Google在垃圾邮件服务方面的地位,因为无法验证发件人的凭据.

你需要考虑替代方案.你计划在完成后如何托管你的脚本/应用程序/网站:几乎每个托管解决方案(共享/ vps /专用服务器)都将预先配置一个电子邮件传输解决方案:无论是sendmail还是postfix on*nix,还是IIS在Windows上.

如果您打算使用gmail,那么您可以:

  • 设置专用的"myapp@gmail.com"帐户
  • 如果您拥有您应该发送的域名,请使用域名免费Gmail,并设置"myapp@mydomain.com"帐户.

====

编辑2015年6月

有人建议GMail允许通过不同的地址发送.据我所知,这是通过GMail wep应用程序发送,并利用您现有的外部SMTP服务器,这与原始问题无关.

====

编辑2013年11月

看到这仍然是一个涓滴的选票.快速更新.

谷歌已撤回其域名免费GMail.周围还有很多其他免费服务.值得注意的是Mandrill - 一种用于交易电子邮件的一对一电子邮件服务(例如电子商务订单等).它由MailChimp运行,MailChimp非常了解有关发送电子邮件的所有信息.他们还给你12k /月免费,这是相当不错的.

  • 像gmail这样的其他第三方邮件传输代理都是可以接受的.由于gmail有这样的限制,你能推荐另一个吗? (2认同)

小智 8

这个问题和正确答案可能是相关的:

使用Gmail for SMTP时,您可以设置不同的"发件人"地址吗?

Gmail要求您在将邮件作为该电子邮件地址发送之前验证发件人地址.因此,您需要在个人Gmail帐户中添加新发件人并进行验证.

这样做将允许您使用youremail@gmail.com进行身份验证并从from@example.com发送电子邮件


Ant*_*ony 1

与其他人不同,我会冒险并假设您所说的字母指的是电子邮件......

但当您提到它应该包括“标题和内容”时,我不确定您的意思是什么。您想转发电子邮件吗?您是否希望来自A的电子邮件在标题中显示为来自B的 Gmail 帐户?您正在构建某种 Gmail 客户端吗?

使用 PHP 发送电子邮件的最简单方法是使用邮件功能。这个例子直接来自他们的文档:

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
Run Code Online (Sandbox Code Playgroud)

如果您希望标头显示在A的 gmail 中,而不是简单地更改发件人/回复部分,则必须使用 gmail 作为 SMTP 服务器。我不知道你是否可以在脚本级别设置它。