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 在此服务器上设置的。恐怕我不太了解它是如何工作的,我几乎只是按照一堆教程将它粘在一起,但还没有完全理解它。
有用的东西
我已验证以下两种情况有效:
- 从命令行向 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
- 通过 Gitlab 将邮件发送到随机的其他域 - 使用 Guerrilla Mail
测试
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。所以我想可以安全地消除日志文件中的错误。
问题
我在 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 在此服务器上设置的。恐怕我不太了解它是如何工作的,我几乎只是按照一堆教程将它粘在一起,但还没有完全理解它。
有用的东西
我已验证以下两种情况有效:
- 从命令行向 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
- 通过 Gitlab 将邮件发送到随机的其他域 - 使用 Guerrilla Mail 测试
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。所以我想可以安全地消除日志文件中的错误。