使用 sendmail 发送邮件到 gmail

使用 sendmail 发送邮件到 gmail

我在从我的 gmail 帐户向 gmail 帐户发送邮件时遇到问题。发送邮件后,我在 linux-box 中收到邮件,提示需要身份验证。当我查看日志时,我发现

Sep 13 02:28:05 ip-172-31-25-143 sendmail[9264]: v8D2S5gQ009264: [email protected], size=141, class=0, nrcpts=1, msgid=<201709130228.v8D2S5gQ009264@ip-172-31-25-143.ap-south-1.compute.internal>, relay=ubuntu@localhost
Sep 13 02:28:05 ip-172-31-25-143 sm-mta[9265]: v8D2S54l009265: from=<[email protected]>, size=487, class=0, nrcpts=1, msgid=<201709130228.v8D2S5gQ009264@ip-172-31-25-143.ap-south-1.compute.internal>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep 13 02:28:05 ip-172-31-25-143 sendmail[9264]: v8D2S5gQ009264: to=<[email protected]>, [email protected] (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30141, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (v8D2S54l009265 Message accepted for delivery)
Sep 13 02:28:06 ip-172-31-25-143 sm-mta[9267]: STARTTLS=client, relay=gmail-smtp-msa.l.google.com., version=TLSv1.2, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128
Sep 13 02:28:06 ip-172-31-25-143 sm-mta[9267]: v8D2S54l009265: to=<[email protected]>, ctladdr=<[email protected]> (1000/1000), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=120487, relay=gmail-smtp-msa.l.google.com. [74.125.200.109], dsn=5.0.0, stat=Service unavailable
Sep 13 02:28:06 ip-172-31-25-143 sm-mta[9267]: v8D2S54l009265: v8D2S64l009267: DSN: Service unavailable
Sep 13 02:28:07 ip-172-31-25-143 sm-mta[9267]: v8D2S64l009267: to=<[email protected]>, delay=00:00:01, xdelay=00:00:01, mailer=local, pri=30000, dsn=2.0.0, stat=Sent

我看到一个答案说我必须更改主机名,以便它解析为我设备的确切 IP。我可以这样做,但我担心由于以下问题我不确定

  1. 我必须在托管我的 web 应用程序的生产服务器上执行此操作,那么从 /etc/hostname 和 /etc/hosts 更改主机名是否会导致使用我的域名(即 pixyfi.com)访问我的 web 应用程序时出现问题?
  2. 这台机器访问互联网会有什么影响吗?

或者如果除了更改主机名之外我还需要做其他事情,请告诉我

答案1

发送邮件有两种不同的方式:

  • 作为邮件客户端(如 thunderbird 或 outlook)
  • 作为邮件服务器(如 sendmail 或 postfix)

尽管您是通过 sendmail 邮件服务器发送邮件,但 google 仍将 sendmail 服务器和 google 邮件服务器之间的邮件会话视为邮件客户端会话,因为您的发件人地址是 google 邮件地址。因此,它需要像您的邮件客户端一样进行身份验证,以防止除您之外的任何人通过 google 邮件服务器代表您发送邮件。

在这种情况下,所有其他内容均不适用,因为它仅与您的 sendmail 服务器尝试使用您的域 pixyfi.com 或您的客户端及其自己的域的发件人地址传递邮件的情况有关。

大约 20 年前,代表任何人发送邮件都是可能的,但那时每个人都必须开始保护自己的邮件服务器免遭滥用。

编辑:抱歉,在尝试解决您的问题时忘记回答您的明确问题。

  1. 是的,您必须关心您的发送邮件服务器的名称(如下所述),该服务器最终向全世界发送电子邮件。

  2. 不,机器的内部主机名通常对外界不可见。除非您没有充分配置,否则某些软件可能会默认使用它。

不必担心您机器的主机名 - 使用命令设置和读取的主机名hostname。您的 Web 服务器可以配置为使用任何其他名称,如果您在同一台服务器上托管多个域,甚至必须为每个域进行配置。

与邮件服务器相同;它可能默认使用您的主机名来标识自己,但这也是可配置的。

只需确保:

  • sendmail 在 HELO 过程中用来标识自己的名称,以及
  • 反向查找您的 IP 地址 ( nslookup 35.154.25.164)

是相等的,因为某些邮件服务器需要这样做才能接受来自您的服务器的邮件。

对我上面所说的“所有其他内容”的更多回答真的可以写成一篇很长的文章,所以我就不在这里继续了。我在某个地方看到过一个关于 serverfault 的很好的通用答案,但我现在找不到它。所以我只向你指出 Google 和 AOL 向邮政局长提供的信息:

答案2

Gmail 不允许登录第三方应用程序登录,除非您通过 google 控制台登录 gmail。

您必须从您的 Google 帐户隐私中更改登录设置。

相关内容