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

时间:2009-08-26 05:27:36

标签: php email smtp gmail

我想通过gmail向 A 发送电子邮件至 B HEADER CONTENT 。< / p>

如何通过PHP做到这一点?

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

screenshot of from address
(来源:maishudi.com

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

如何更改 FROM 部分?

6 个答案:

答案 0 :(得分:46)

简短的回答 - 你不能。

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

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

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

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

  • 设置专用的“myapp@gmail.com”帐户
  • 如果您拥有自己要发送的域名,请使用free gmail for domains,然后设置“myapp@mydomain.com”帐户。

====

2015年6月编辑

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

====

2013年11月编辑

看到这仍然是涓涓细流的选票。快速更新。

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

答案 1 :(得分:9)

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

When using Gmail for SMTP, can you set a different "from" address?

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

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

答案 2 :(得分:1)

与其他人不同,我会冒险尝试并假设通过信件表示电子邮件......

但是当你提到它应该包含“标题和内容”时,我不确定你会得到什么。你想转发电子邮件吗?您是否希望来自 A 的电子邮件看起来好像来自标题中的 B 的Gmail帐户?你在构建某种gmail客户端吗?

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

$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);

如果您希望标题显示在 A 的gmail中,而不是简单地更改from / reply to part,则必须使用gmail作为SMTP服务器。我不知道你是否可以在脚本级别设置它。

答案 3 :(得分:1)

您需要转到GMAIL设置并添加新别名。

系统会询问您SMTP信息,该信息基本上没有用,因为您使用的是SMTP发送电子邮件,因此发现如果您的别名位于Google Suite域中,则 >只需简单的电子邮件确认即可添加它!

一旦在此处有了别名,就可以更改SMTP电子邮件中的“发件人”标头。


注意:您不能将“发件人”地址更改为what@dude.com,这就是Gmail的工作方式,也是受信任的原因。

答案 4 :(得分:0)

如果你想使用Gmail的原因是因为你不想设置MTA(你在this回答的评论中说明的原因),你有两个选择:

  1. 如果网络服务器在您的网站上 家/工作地点;使用你的ISP smtp-server
  2. 如果Web服务器处于专用状态 托管中心,问他们什么 smtp-server使用。

答案 5 :(得分:0)

以上答案不太正确。

只要您拥有另一个电子邮件地址,您肯定可以指定 的任何发件人。

help page所述:

  
      
  1. 在计算机上,打开 Gmail
  2.   
  3. 在右上方,点击设置
  4.   
  5. 点击帐户并导入帐户标签。
  6.   
  7. 在“ 发送邮件”部分中,点击添加另一个电子邮件地址。
  8.   
  9. 输入您的姓名和您要发送的地址。
  10.   
  11. 点击下一步,然后发送验证
  12.   
  13. 对于学校或工作帐户,请输入SMTP服务器(例如smtp.gmail.com或smtp.yourschool.edu)以及该帐户的用户名和密码。
  14.   
  15. 点击添加帐户
  16.   

成功添加电子邮件后, 您可以代表gmail中的新电子邮件地址发送电子邮件。

在您通过Google SMTP发送电子邮件时,

Google 不会以此方式从电子邮件中重写您的邮件。