Gitlab 无法向 Gmail 帐户发送电子邮件

Gitlab can't deliver email to Gmail Accounts

问题

我在 DigitalOcean 服务器上安装了 Gitlab Omnibus 版本。我发现当我使用 gmail ID 创建一个新用户帐户时,他们从未收到任何来自 Gitlab 的电子邮件。

浏览 mail.log 文件:

Jun  2 00:02:34 hostname postfix/pickup[13969]: D5FB82001C: uid=999 from=
Jun  2 00:02:34 hostname postfix/cleanup[18636]: D5FB82001C: message-id=
Jun  2 00:02:34 hostname postfix/qmgr[14920]: D5FB82001C: from=, size=5478, nrcpt=1 (queue active)
Jun  2 00:02:34 hostname postfix/smtp[18640]: connect to gmail-smtp-in.l.google.com[2404:6800:4003:c01::1a]:25: Network is unreachable
Jun  2 00:02:37 hostname postfix/smtp[18640]: D5FB82001C: to=, relay=gmail-smtp-in.l.google.com[74.125.200.26]:25, delay=2.2, delays=0.01/0.01/0.86/1.3, dsn=2.0.0, status=sent (250 2.0.0 OK 1433217891 j15si24377385pdk.208 - gsmtp)
Jun  2 00:02:37 hostname postfix/qmgr[14920]: D5FB82001C: removed

相关错误好像是:

connect to gmail-smtp-in.l.google.com[2404:6800:4003:c01::1a]:25: Network is unreachable

这很奇怪,因为我可以通过命令行向 gmail 发送邮件。

邮件服务器

我的邮件是使用 postfix/dovecot/Squirrelmail 在此服务器上设置的。恐怕我不太了解它是如何工作的,我几乎只是按照一堆教程将它粘在一起,但还没有完全理解它。

有用的东西

我已验证以下两种情况有效:

  1. 从命令行向 gmail ID 发送邮件工作正常:

echo -e "Hello there" | mail -s "Test Email" "random@gmail.com"

此操作的

Mail.log 个条目:

Jun  2 00:23:46 hostname postfix/pickup[13969]: 853432001C: uid=1000 from=<vidur@hostname>
Jun  2 00:23:46 hostname postfix/cleanup[23752]: 853432001C: message-id=<20150602042346.853432001C@mail.hostname.com>
Jun  2 00:23:46 hostname postfix/qmgr[14920]: 853432001C: from=<vidur@hostname>, size=356, nrcpt=1 (queue active)
Jun  2 00:23:48 hostname postfix/smtp[23754]: 853432001C: to=<random@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.200.27]:25, delay=1.7, delays=0.01/0/0.85/0.88, dsn=2.0.0, status=sent (250 2.0.0 OK 1433219162 fw3si24157505pbb.133 - gsmtp)
Jun  2 00:23:48 hostname postfix/qmgr[14920]: 853432001C: removed
  1. 通过 Gitlab 将邮件发送到随机的其他域 - 使用 Guerrilla Mail
  2. 测试
Jun  2 00:31:20 hostname postfix/pickup[24015]: B66B92001C: uid=999 from=
Jun  2 00:31:20 hostname postfix/cleanup[24228]: B66B92001C: message-id=
Jun  2 00:31:20 hostname postfix/qmgr[14920]: B66B92001C: from=, size=5813, nrcpt=1 (queue active)
Jun  2 00:31:22 hostname postfix/smtp[24232]: B66B92001C: to=, relay=mail.sharklasers.com[198.143.169.10]:25, delay=1.7, delays=0.02/0/0.65/1.1, dsn=2.0.0, status=sent (250 OK : queued as a99f431dc4f7f2b50ad3980311a1d4a6)
Jun  2 00:31:22 hostname postfix/qmgr[14920]: B66B92001C: removed

我乐于接受任何想法和建议。如果我可以提供更多信息来帮助调试此问题,请告诉我。谢谢。

我几乎觉得回答这个问题很愚蠢,但我想通了我的问题。打算留在这里留给子孙后代。

1.

我忘记检查相关 Gmail 帐户的垃圾邮件文件夹。 Gitlab confirmation/welcome 电子邮件似乎被大多数垃圾邮件过滤器接收。毕竟 Gitlab 发送邮件是正确的。

Source

2.

我通过遵循 this post 并强制我的后缀仅使用 IPv4 协议来修复我报告的日志错误。不确定该更改的副作用是什么,所以我不推荐它。

看起来 Gitlab 首先尝试通过 IPv6 访问 gmail 服务器,然后回退到 IPv4。所以我想可以安全地消除日志文件中的错误。