![GitLab:SMTP 邮件只能通过控制台运行](https://linux22.com/image/691888/GitLab%EF%BC%9ASMTP%20%E9%82%AE%E4%BB%B6%E5%8F%AA%E8%83%BD%E9%80%9A%E8%BF%87%E6%8E%A7%E5%88%B6%E5%8F%B0%E8%BF%90%E8%A1%8C.png)
我在虚拟机上安装了 Linux Ubuntu 16.04.1。我按照 GitLab 网站上的说明安装了 GitLab 8.12.6,但在使用 Gitlab 发送邮件时遇到了问题。
我想使用与 GitLab 服务器不同的域名的 SMTP 服务器。配置如下:GitLab 提供的示例。
我关注了GitLab 的官方调试技巧。
正如预期的那样,ActionMailer::Base.delivery_method
回报=> :smtp
;并且我能够使用该Notify.test_email
方法发送邮件。尽管如此,新用户仍然收不到任何确认邮件。
在管理区域 > 监控 > 后台作业下,没有显示任何特殊内容。仪表板很整洁(没有失败/忙碌/...作业)。日志没有显示任何与电子邮件有关的问题。我甚至看到:
已发送邮件至[电子邮件保护](897.3毫秒)
健康检查报告显示一切健康。
唯一令人惊讶的是,正在运行的 sidekiq 进程是 git,并且在 PID/CPU/MEM/STAT/... 下仅显示问号。
令我惊讶的是,我可以从 GitLab 控制台发送邮件,但自行发送时仍然会失败。
您建议采取哪些进一步措施来解决此问题?
编辑
我查看了 GitLabs 日志(docs.gitlab.com/ee/administration/logs.html)但没有发现任何东西。
我想了解邮件服务器是否导致了此问题。(我无法访问其日志。)因此我将 GitLab 配置为使用我的 GMail 邮件作为 smtp 服务器。我的 GMail 已启用 2FA,因此我创建了一个令牌。GMail 可让您显示令牌上次使用的时间。
重新配置 GitLab 服务器后,我请求了一封新的确认电子邮件(server_name.com/users/confirmation/new),但没有收到任何内容。有趣的是,该令牌仍然从未被使用过。
之后,我使用管理控制台检查了 GMail 配置:令牌已被使用并且我收到了邮件。
由此我推断GitLab 甚至没有尝试访问 SMTP 服务器。
答案1
注册确认电子邮件已被禁用。我在管理区域的设置下启用了它:“注册时发送确认电子邮件”。
令人困惑的是:
我正在使用“请求新确认”表单检查电子邮件设置。此表单将仅向启用上述设置时创建的用户发送邮件。不会向在关闭确认电子邮件的情况下创建的其他用户发送电子邮件,即使他们使用该表单发出明确请求。
这是因为他们的电子邮件地址已被标记为已验证。他们的请求被忽略,而不会在日志文件中提及。