我的虚拟机上安装了 Linux Ubuntu 14.04。最近我按照 GitLab 上的说明安装了 GitLab 7.8.2地点,在使Gitlab发送邮件时遇到问题。
例如,当我尝试使用 Web 界面创建新用户时,我没有收到来自服务器的任何确认邮件。
- 我已经为我的环境配置了 postfix(设置“mynetworks”、“myhostname”),并使用 sendmail 成功向我的 yahoo 帐户发送了一封测试邮件。
我将这些行添加到文件中/opt/gitlab/embedded/service/gitlab-ci/config/environments/production.rb:
config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { address: "127.0.0.1", port: 25, enable_starttls_auto: false }
我已经跟踪/var/log/mail.log在注册我的 GitLab 实例时,我设法看到 GitLab 实际上与 postfix 交互但没有成功。日志表明操作失败,因为 IP 被阻止,但我认为这不正确,因为我可以使用发送邮件命令。
/var/log/mail.log:
Mar 6 10:58:32 ubuntu postfix/qmgr[12506]: 5BEE724E74: from=<gitlab@ubuntu>, size=630, nrcpt=1 (queue active) Mar 6 10:59:02 ubuntu postfix/smtp[19746]: connect to example.com[93.184.216.34]:25: Connection timed out Mar 6 10:59:02 ubuntu postfix/smtp[19746]: connect to example.com[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable Mar 6 10:59:02 ubuntu postfix/smtp[19746]: 5BEE724E74: to=<[email protected]>, relay=none, delay=30, delays=0.16/0.1/30/0, dsn=4.4.1, status=deferred (connect to example.com[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable) Mar 6 11:00:50 ubuntu postfix/pickup[12505]: 07BF424E7A: uid=999 from=<gitlab@ubuntu> Mar 6 11:00:50 ubuntu postfix/cleanup[19923]: 07BF424E7A: message-id=<[email protected]> Mar 6 11:00:50 ubuntu postfix/qmgr[12506]: 07BF424E7A: from=<gitlab@ubuntu>, size=626, nrcpt=1 (queue active) Mar 6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: to=<[email protected]>, relay=mta6.am0.yahoodns.net[66.196.118.33]:25, delay=1.1, delays=0.02/0.01/0.86/0.18, dsn=5.7.1, status=bounced (host mta6.am0.yahoodns.net[66.196.118.33] said: 553 5.7.1 [BL21] Connections will not be accepted from 109.65.131.14, because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html (in reply to MAIL FROM command)) Mar 6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: lost connection with mta6.am0.yahoodns.net[66.196.118.33] while sending RCPT TO Mar 6 11:00:51 ubuntu postfix/cleanup[19923]: 1A85F24E7C: message-id=<20150306190051.1A85F24E7C@ubuntu> Mar 6 11:00:51 ubuntu postfix/qmgr[12506]: 1A85F24E7C: from=<>, size=2643, nrcpt=1 (queue active) Mar 6 11:00:51 ubuntu postfix/bounce[19929]: 07BF424E7A: sender non-delivery notification: 1A85F24E7C Mar 6 11:00:51 ubuntu postfix/qmgr[12506]: 07BF424E7A: removed
答案1
您从 gitlab 实例发送的邮件已被您的 postfix 接受
Mar 6 10:58:32 ubuntu postfix/qmgr[12506]: 5BEE724E74: from=<gitlab@ubuntu>, size=630, nrcpt=1 (queue active)
但在这里送货到目的地不起作用:
Mar 6 10:59:02 ubuntu postfix/smtp[19746]: 5BEE724E74: to=<[email protected]>, relay=none, delay=30, delays=0.16/0.1/30/0, dsn=4.4.1, status=deferred (connect to example.com[2606:2800:220:1:248:1893:25c8:1946]:25: Network is unreachable)
您的服务器尝试使用 IPv6,但无法连接。看来您必须手动禁用 IPv6,在您的 中使用此方法main.cf
:
inet_protocols = ipv4
但中继(发送)到雅虎,导致错误:
Mar 6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: to=<[email protected]>, relay=mta6.am0.yahoodns.net[66.196.118.33]:25, delay=1.1, delays=0.02/0.01/0.86/0.18, dsn=5.7.1, status=bounced (host mta6.am0.yahoodns.net[66.196.118.33] said: 553 5.7.1 [BL21] Connections will not be accepted from 109.65.131.14, because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html (in reply to MAIL FROM command))
它被拒绝了,因为您的动态 IP 109.65.131.14 在邮件列表中。似乎您在家中有此实例,使用动态 IP。但当此 IP 的先前用户之一试图发送垃圾邮件时,这些邮件通常会出现在垃圾邮件列表中。可能需要静态 IP(在家中或其他地方)或使用中继服务器。并使用正确的 FQDN,为 IP 设置正确的反向 DNS 记录 (PTR) 等等,请参阅许多其他关于如何不被归类为垃圾邮件的问题。
由于发送过程失败,将向发件人发送未送达通知
Mar 6 11:00:51 ubuntu postfix/bounce[19929]: 07BF424E7A: sender non-delivery notification: 1A85F24E7C
Mar 6 11:00:51 ubuntu postfix/qmgr[12506]: 07BF424E7A: removed
您可能应该阅读回复给用户的邮件gitlab
或将其配置为管理员帐户的别名。
答案2
我找到了问题所在。正如您在日志中看到的那样:
Mar 6 11:00:51 ubuntu postfix/smtp[19925]: 07BF424E7A: to=<[email protected]>, relay=mta6.am0.yahoodns.net[66.196.118.33]:25, delay=1.1, delays=0.02/0.01/0.86/0.18, dsn=5.7.1, status=bounced (host mta6.am0.yahoodns.net[66.196.118.33] said: 553 5.7.1 [BL21] Connections will not be accepted from 109.65.131.14, because the ip is in Spamhaus's list; see http://postmaster.yahoo.com/550-bl23.html (in reply to MAIL FROM command))
它表示错误是在回复 MAIL FROM 命令时引发的。正如您在日志行中看到的那样:
Mar 6 11:00:50 ubuntu postfix/pickup[12505]: 07BF424E7A: uid=999 from=<gitlab@ubuntu>
我的域名是@ubunto这是一个糟糕的域名!
我需要通过设置 GitLab 配置文件中的“external_url”变量来更改我的域名,方法是“http://ubuntu“转换为 FQDN。(/etc/gitlab/gitlab.rb)