谷歌计算引擎的 smtp 中继

谷歌计算引擎的 smtp 中继

我有两个域名,一个 .com 和一个 .net。.com 有一个托管在 google 上的网站并使用 gmail。.net 是一个没有关联邮件帐户的 google 计算引擎,它运行自己的网络服务器并使用仅在端口 587 上配置为外发邮件的 postfix。我需要一个 smtp 中继来发送管理电子邮件。我目前正在使用我运行的另一个网站作为权宜之计,但我认为应该有一种方法可以使用 google 的 smtp 中继之一来做到这一点。我尝试使用 aspmx2.googlemail.com,但似乎不起作用(显示为 .com 域的 MX 记录的中继);但我收到网络不可达错误:

postfix/smtp[2180]: ... relay=none, delay=30065, delays=30035/0.09/30/0, dsn=4.4.1, status=deferred (connect to aspmx2.googlemail.com[2607:f8b0:4001:c12::1a]:587: Network is unreachable)

我推测该组中的其他继电器也不会起作用。

我已经为 .com 配置了 smtp-relay 服务以允许从 .net 系统进行中继。

任何帮助将非常感激。

更新:删除了根本不起作用的中继。使用 smtp-relay.gmail.com 效果更好,但仍然失败:

8 月 1 日 20:27:43 xblgx-ops postfix/master[30890]: 守护进程已启动 -- 版本 3.1.0,配置 /etc/postfix
8 月 1 日 20:29:32 xblgx-ops postfix/pickup[30893]: BA3D73F79F: uid=1002 来自=
8 月 1 日 20:29:32 xblgx-ops postfix/cleanup[30906]: BA3D73F79F: message-id=
8 月 1 日 20:29:32 xblgx-ops postfix/qmgr[30894]: BA3D73F79F: from=, size=418, nrcpt=1 (队列活跃)
8月1日 20:29:32 xblgx-ops postfix/smtp[30910]: 连接到 smtp-relay.gmail.com[2607:f8b0:400e:c09::1c]:587: 网络不可访问
8 月 1 日 20:29:33 xblgx-ops postfix/smtp[30910]: 与 smtp-relay.gmail.com[74.125.195.28]:587 建立了不受信任的 TLS 连接:TLSv1.2,密码为 ECDHE-ECDSA-AES128-GCM-SHA256(128/128 位)
8 月 1 日 20:29:33 xblgx-ops postfix/smtp[30910]: BA3D73F79F: to=,relay=smtp-relay.gmail.com[74.125.195.28]:587,delay=0.49,delays=0.03/0.02/0.39/0.05,dsn=5.7.0,status=bounced (host smtp-relay.gmail.com[74.125.195.28] 表示:550-5.7.0 邮件中继被拒绝 [35.230.53.86]。550-5.7.0 中继凭据无效,其中一个域位于:insidexblgx.internal、c.insidexblgx.internal、550-5.7.0 xblgx-ops.c.insidexblgx.internal、xbiologix.net(从 550-5.7.0 HELO 和 MAIL FROM 获得)。550-5.7.0 电子邮件发送自未在您的 G Suite 帐户中注册的域或 IP 地址。请登录您的 G Suite 帐户并验证您的发送设备 IP 地址是否已在 G Suite SMTP 中继设置中注册。有关更多信息,请访问 550 5.7.0 https://support.google.com/a/answer/6140680#maildenied m11sm1647381ooe.3 - gsmtp(回复 MAIL FROM 命令))
8 月 1 日 20:29:33 xblgx-ops postfix/cleanup[30906]: 3BBED3F7A0: 消息 ID=
8 月 1 日 20:29:33 xblgx-ops postfix/qmgr[30894]: 3BBED3F7A0: from=, size=3849, nrcpt=1 (队列活跃)
8 月 1 日 20:29:33 xblgx-ops postfix/bounce[30913]: BA3D73F79F: 发件人未送达通知: 3BBED3F7A0
8 月 1 日 20:29:33 xblgx-ops postfix/qmgr[30894]: BA3D73F79F: 已删除
8 月 1 日 20:29:33 xblgx-ops postfix/smtp[30910]: 与 smtp-relay.gmail.com[74.125.195.28]:587 建立了不受信任的 TLS 连接:TLSv1.2,密码为 ECDHE-ECDSA-AES128-GCM-SHA256(128/128 位)
8 月 1 日 20:29:33 xblgx-ops postfix/smtp[30910]: 3BBED3F7A0: to=,relay=smtp-relay.gmail.com[74.125.195.28]:587,delay=0.45,delays=0/0/0.39/0.05,dsn=5.1.1,status=bounced (host smtp-relay.gmail.com[74.125.195.28] 说: 550-5.1.1 您尝试联系的电子邮件帐户不存在。请尝试 550-5.1.1 仔细检查收件人的电子邮件地址是否有拼写错误或 550-5.1.1 不必要的空格。了解更多信息,请访问 550 5.1.1 https://support.google.com/mail/?p=NoSuchUser s2sm145038otd.5-gsmtp(回复 RCPT TO 命令)
8 月 1 日 20:29:33 xblgx-ops postfix/qmgr[30894]: 3BBED3F7A0: 已删除

发送机器的 IP 为 35.230.53.86,在我的 Google 计算控制台 VM 上显示为正确的 IP,但反向 DNS 将其显示为 86.53.230.35.bc.googleusercontent.com。该 IP 已在 .com 域的 gsuite gmail 设置中明确允许:

从 xbiologix.net 出站
允许的发件人:仅限我的域中的地址
仅接受来自指定 IP 地址的邮件:是
允许的 IP 地址:xbiologix.net
需要 SMTP 身份验证:否
是否需要 TLS 加密:否

请注意,域名 xbiologix.net 是日志行中最后一个抱怨无效域名的域名。但“我的域名”是什么意思?gsuite 如何知道我的域名是什么?

我修改了 postfix main.cf 以包含:

smtp_helo_name = [35.230.54.86] xbiologix.net

但我现在得到:

8月1日 21:17:51 xblgx-ops postfix/smtp[422]: 连接到 smtp-relay.gmail.com[2607:f8b0:400e:c09::1c]:587: 网络不可达
8 月 1 日 21:17:51 xblgx-ops postfix/smtp[422]: 7B1383F79E: to=, reply=smtp-relay.gmail.com[74.125.195.28]:587, delay=0.32, delays=0.02/0.02/0.28/0, dsn=4.4.2, status=deferred (执行 HELO 握手时与 smtp-relay.gmail.com[74.125.195.28] 失去连接)

答案1

看一下错误信息:

8 月 1 日 20:29:33 xblgx-ops postfix/smtp[30910]: BA3D73F79F: to=,relay=smtp-relay.gmail.com[74.125.195.28]:587,delay=0.49,delays=0.03/0.02/0.39/0.05,dsn=5.7.0,status=bounced (host smtp-relay.gmail.com[74.125.195.28] 表示:550-5.7.0 邮件中继被拒绝 [35.230.53.86]。550-5.7.0 中继凭据无效,其中一个域位于:insidexblgx.internal、c.insidexblgx.internal、550-5.7.0 xblgx-ops.c.insidexblgx.internal,xbiologix.net(从 550-5.7.0 HELO 和 MAIL FROM 获得)。550-5.7.0电子邮件未在您的 G Suite 帐户中注册 550-5.7.0 的域或 IP 地址发送。请登录您的 G Suite 帐户并验证您的发送设备 IP 地址是否已在 G Suite SMTP 中继设置中注册。有关更多信息,请访问 https://support.google.com/a/answer/6140680#maildenied m11sm1647381ooe.3-gsmtp(回复 MAIL FROM 命令))

此行为在文档中进行了解释从实例发送电子邮件

...如果你熟悉G Suite并且已经为支持电子邮件的 G Suite 帐户付费, 你可以设置中继服务以通过 G Suite 发送电子邮件。请注意,Gmail 和 G Suite 对电子邮件活动实施限制。

如果您没有 G Suite 帐号或者不想使用 G Suite 或第三方邮件提供商,您可以设置自己的电子邮件服务器在使用非标准端口的实例上。您可以选择任何 临时端口未被 Compute Engine 阻止。

此外,在使用标准电子邮件端口

默认情况下,Compute Engine 允许除端口 25 之外的所有端口上的出站连接,由于存在滥用风险,端口 25 被阻止。所有其他端口均开放,包括端口 587 和 465

并在 RFC 5321 中:

4.5.4.2. 接收策略

SMTP 服务器应始终尝试保持对 SMTP 端口(IANA 指定为端口 25)的待处理监听。这需要支持 SMTP 的多个传入 TCP 连接。

如您所见,根据文档和 RFC,您可以通过两种方式实现您的目标:使用付费的 GSuite 帐户或使用付费的第三方服务。

此外,您可以尝试通过您上面提到的基于 Postfix 的现有 smtp 服务器配置中继。

相关内容