无法从 GitLab 发送邮件
Posted
技术标签:
【中文标题】无法从 GitLab 发送邮件【英文标题】:Unable to send mail from GitLab 【发布时间】:2016-02-03 08:18:15 【问题描述】:我正在尝试将 GitLab 配置为使用 Microsoft Exchange 发送邮件,但是它不起作用,没有电子邮件从 gitlab 发送给用户
这是我的配置:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.company.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "gitlab@company.com"
gitlab_rails['smtp_password'] = "PASSWORD"
我还用Java邮件实现了一段代码,它发送邮件成功,这是Java邮件配置:
final String username = "gitlab@company.com";
final String password = "PASSWORD";
properties.put("mail.smtp.host", "mail.company.com");
properties.put("mail.smtp.port", "25");
properties.put("mail.transport.protocol", "smtp");
谁能指出如何解决这个问题?
【问题讨论】:
【参考方案1】:完整的交换配置还应包含以下几行:
gitlab_rails['smtp_domain'] = "smtp.company.com" # SMTP domain to use
gitlab_rails['smtp_authentication'] = "login" # Use login credentials
Source
【讨论】:
【参考方案2】:我正在尝试将 GitLab 配置为使用 Microsoft Exchange 发送邮件
这应该是不可能的/容易的之前 GitLab 11.7 (January 22nd, 2019) OP 之后 3 年以上。
见“GitLab now supports Microsoft Exchange and Google Groups for incoming email features like Service Desk”
从 GitLab 11.7 开始,您现在可以将 Microsoft Exchange 或 Google Groups 与您的自我管理 GitLab 实例一起使用,配置为电子邮件服务器,从而在设置传入电子邮件功能时为您提供更多选择。
以前,只有当您的电子邮件服务器支持 sub-addressing 时,自我管理的 GitLab 用户才能使用这些功能。 (illustrated here) Microsoft Exchange 和 Google Groups 不支持子寻址。
GitLab 11.7 现在支持子地址和全能电子邮件邮箱,从而与这两个提供全能电子邮件邮箱的流行选项兼容。
查看configuration example(用于 Omnibus 安装)
gitlab_rails['incoming_email_enabled'] = true
# The email address including the `%key` placeholder that will be replaced to reference the item being replied to.
# The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`).
# Exchange does not support sub-addressing, so a catch-all mailbox must be used.
gitlab_rails['incoming_email_address'] = "incoming-%key@exchange.example.com"
# Email account username
# Typically this is the userPrincipalName (UPN)
gitlab_rails['incoming_email_email'] = "incoming@ad-domain.example.com"
# Email account password
gitlab_rails['incoming_email_password'] = "[REDACTED]"
# IMAP server host
gitlab_rails['incoming_email_host'] = "exchange.example.com"
# IMAP server port
gitlab_rails['incoming_email_port'] = 993
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = true
是的,这适用于所有版本的 GitLab,包括核心“CE”版本(“社区版”,免费)。 见release notes:
GitLab 有一些使用传入电子邮件的强大功能,例如电子邮件回复、电子邮件新问题、电子邮件新合并请求和服务台。以前,只有使用配置为使用子地址的电子邮件服务器才能利用这些功能。
在此版本中,GitLab 现在支持子地址和包罗万象的电子邮件邮箱,使用新的电子邮件格式,允许更多电子邮件服务器与 GitLab 一起使用,包括 Microsoft Exchange 和 Google Groups(不支持子寻址)。
【讨论】:
【参考方案3】:我有同样的问题,并设法用这个配置解决它:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.company.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "gitlab@company.com"
gitlab_rails['smtp_password'] = 'PASS'
gitlab_rails['smtp_domain'] = "smtp.company.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
#gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = 'gitlab@conpany.com'
【讨论】:
以上是关于无法从 GitLab 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章