【问题标题】:Not receiving mails to gmail from aws instance server未从 aws 实例服务器接收到 gmail 的邮件
【发布时间】:2020-10-17 17:45:11
【问题描述】:

我在从我的网站上的联系表单接收邮件到我的 Gmail 时遇到问题。联系表格连接到一个小的 PHP 脚本。我的网站在路由 53 上的 aws 实例服务器和 DNS 上上传。

DNS(路由 53)中的所有内容都会更新,例如 MX 记录、SPF、DKIM、DMARC,而且我每天都会收到 DMARC 报告,但没有收到任何联系表单的邮件。

以下是详细信息

PHP 脚本

<?php
$to = "info@mydomain";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: sender@example.com";

mail($to,$subject,$txt,$headers);
?>

MX 记录

1 ASPMX.L.GOOGLE.COM
5 ALT1.ASPMX.L.GOOGLE.COM
5 ALT2.ASPMX.L.GOOGLE.COM
10 ALT3.ASPMX.L.GOOGLE.COM
10 ALT4.ASPMX.L.GOOGLE.COM

防晒系数

"v=spf1 include:_spf.google.com ~all"

DKIM

The key which is provided by google

DMARC

"v=DMARC1; p=none; rua=mailto:info@mydomain"

这些是亚马逊 DNS 路由 53 上更新的详细信息,但我仍然没有收到任何邮件。

请任何人都可以帮助我。

【问题讨论】:

  • 电子邮件如何配置发送?也就是说,它是指向 SMTP 服务器,还是 Amazon SESWhy does Amazon EC2 limit port 25? - Stack Overflow

标签: php amazon-web-services amazon-ec2 gmail


【解决方案1】:

默认情况下,AWS 实例被阻止使用 PHP 的本机 mail() 函数。您的代码就是这样做的。

【讨论】:

  • 那你有什么建议?
  • 您可以使用第三方解决方案,如 Sendgrid、SES、Twilio 等。我将我的设置为通过 Sendgrid 发送邮件。
  • 感谢 Nikster 的回复,但我认为您没有收到我的问题。实际上,我不想将我想从我网站上的联系表中接收电子邮件的电子邮件发送到我的 g-suit Gmail 帐户。对于那个联系表格,我创建了 PHP 脚本,它工作正常,但是当我在 aws 上上传它时,我没有从那个联系表格收到任何邮件到我的 Gmail 帐户
  • 我认为您没有遇到自己的问题 :) 当有人填写您网站上的“联系我们”页面时,您的服务器需要将该消息通过电子邮件发送到某个地方(在这种情况下是您的 gmail 帐户) .为此,您正在使用 PHP 的 mail() 函数,该函数在 AWS 上不起作用。 IOW,当您将电子邮件“接收”到您的 Gmail 帐户时,您的服务器会在那里“发送”给您,对吧?
【解决方案2】:

这可能有多种原因:

  • 默认情况下,端口 25 被阻止,如果您使用此端口发送邮件,则需要考虑使用另一个端口。
  • 许多邮件提供商也会拒绝来自 EC2 IP 范围的垃圾邮件或将其标记为垃圾邮件,这主要是因为有人很容易设置免费套餐帐户并发送欺骗性电子邮件。

建议是通过另一个端口连接到邮件服务。如果您目前没有使用SES 在 Amazons 产品上发送拍摄的设置,则使用服务器上的端口 587,您可以通过此服务发送电子邮件,而前 2 个条件都不满足阻止流量。

如果有特定原因需要使用端口 25,亚马逊确实为您提供了getting it unblocked 的流程,但您需要提供许多步骤来证明您不会滥用它。

【讨论】:

  • 感谢您的回复,但我不想发送电子邮件我想从我网站上的联系表格中接收电子邮件。
  • 嗨@user9065681,如果您收到来自您的联系表单的电子邮件,您仍需要确保满足以下条件,因为电子邮件仍在发送中。确保发件人是您拥有的电子邮件(发件人地址),并以用户电子邮件地址作为回复。
猜你喜欢
  • 2020-04-28
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
  • 2016-11-22
  • 1970-01-01
相关资源
最近更新 更多