Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-06-03. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

配置电子邮件通知

为了让用户轻松地快速响应 GitHub Enterprise Server 上的活动,您可以配置 您的 GitHub Enterprise Server 实例 对议题、拉取请求和提交注释发送电子邮件通知。

为企业配置 SMTP

  1. 从 GitHub Enterprise Server 上的管理帐户中,在任何页面的右上角,单击

    用于访问站点管理员设置的火箭飞船图� �的屏幕截图

  2. 如果您尚未进入“站点管理员”页面,请在左上角单击 Site admin(站点管理员)

    "站点管理员" 链接的屏幕截图

  3. 在左侧边� �中,单击 管理控制台左侧边� �中的 管理控制台 选项卡

  4. 在页面顶部,单击 SettingsSettings 选项卡

  5. 在左侧边� �中,单击 EmailEmail 选项卡

  6. 选择 Enable email。 这将同时启用出站和入站电子邮件,不过,要想入站电子邮件正常运行,您还需要按照下文“配置 DNS 和防火墙设置以允许� 入的电子邮件”所述配置您的 DNS 设置。 启用出站电子邮件

  7. 键入 SMTP 服务器的设置。

    • Server address 字段中,输入您的 SMTP 服务器的地址。
    • Port 字段中,输入 SMTP 服务器用于发送电子邮件的端口。
    • Domain 字段中,输入您的 SMTP 服务器将随 HELO 响应(如有)发送的域名。
    • Authentication(身份验证)下拉菜单中选择您的 SMTP 服务器使用的� 密类型。
    • No-reply email address 字段中,输入要在所有通知电子邮件的 From 和 To 字段中使用的电子邮件地址。
  8. 如果您想丢弃发送到� 回复电子邮件地址的所有� 入电子邮件,请选中 Discard email addressed to the no-reply email address用于丢弃发送到� 回复电子邮件地址的电子邮件的复选框

  9. Support(支持)下,选择用于向您的用户提供附� 支持的链接类型。

    • Email(电子邮件):内部电子邮件地址。
    • URL:内部支持站点的链接。 您必须包括 http://https://支持电子邮件或 URL
  10. 测试电子邮件递送

测试电子邮件递送

  1. Email 部分的顶部,单击 Test email settings测试电子邮件设置

  2. Send test email to 字段中,输入用于接收测试电子邮件的地址。 测试电子邮件地址

  3. 单击 Send test email发送测试电子邮件

    提示:如果在发送测试电子邮件时发生 SMTP 错误(例如即时递送失败或� 出邮件配置错误),您将在 Test email settings 对话框中看到这些错误。

  4. 如果测试电子邮件失败,请排查电子邮件设置问题

  5. 当测试电子邮件成功后,在页面的底部单击 Save settingsSave settings 按钮

  6. 等待配置运行完毕。

    配置实例

配置 DNS 和防火墙设置以允许� 入的电子邮件

如果您希望允许通知的电子邮件回复,则必须配置 DNS 设置。

  1. 确保您的 SMTP 服务器可以访问实例上的端口 25。
  2. 创建一个指向 reply.[hostname] 的 A 记录。 � �据您的 DNS 提供商和实例主机配置,您可以创建一个指向 *.[hostname] 的 A 记录。
  3. 创建一个指向 reply.[hostname] 的 MX 记录,以便发送到该域的电子邮件可以路由到实例。
  4. 创建一个将 noreply.[hostname] 指向 [hostname] 的 MX 记录,以便对通知电子邮件中 cc 地址的回复可以路由到实例。 更多信息请参阅"配置通知。”

排查电子邮件递送问题

创建支持包

如果您� 法� �据显示的错误消息确定什么地方出错,可以下载包含您的邮件服务器与 GitHub Enterprise Server 之间的整个 SMTP 对话的支持包。 在下载并提取支持包后,请检查 enterprise-manage-logs/unicorn.log 中的条目,查看整个 SMTP 对话日志和任何相关错误。

该独角兽日志应以类似于下面所示的方式显示事务:

This is a test email generated from https://10.0.0.68/setup/settings
Connection opened: smtp.yourdomain.com:587
-> "220 smtp.yourdomain.com ESMTP nt3sm2942435pbc.14\r\n"
<- "EHLO yourdomain.com\r\n"
-> "250-smtp.yourdomain.com at your service, [1.2.3.4]\r\n"
-> "250-SIZE 35882577\r\n"
-> "250-8BITMIME\r\n"
-> "250-STARTTLS\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "STARTTLS\r\n"
-> "220 2.0.0 Ready to start TLS\r\n"
TLS connection started
<- "EHLO yourdomain.com\r\n"
-> "250-smtp.yourdomain.com at your service, [1.2.3.4]\r\n"
-> "250-SIZE 35882577\r\n"
-> "250-8BITMIME\r\n"
-> "250-AUTH LOGIN PLAIN XOAUTH\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "AUTH LOGIN\r\n"
-> "334 VXNlcm5hbWU6\r\n"
<- "dGhpc2lzbXlAYWRkcmVzcy5jb20=\r\n"
-> "334 UGFzc3dvcmQ6\r\n"
<- "aXRyZWFsbHl3YXM=\r\n"
-> "535-5.7.1 Username and Password not accepted. Learn more at\r\n"
-> "535 5.7.1 http://support.yourdomain.com/smtp/auth-not-accepted nt3sm2942435pbc.14\r\n"

此日志显示该设备:

  • 打开了与 SMTP 服务器的连接 (Connection opened: smtp.yourdomain.com:587)。
  • 成功连接并选择使用 TLS (TLS connection started)。
  • 执行了 login 身份验证类型 (<- "AUTH LOGIN\r\n")。
  • SMTP 服务器以� 效为原� 拒绝了身份验证 (-> "535-5.7.1 Username and Password not accepted.)。

检查 您的 GitHub Enterprise Server 实例 日志

如果您需要验证入站电子邮件是否正常运行,可以在实例上检查两个日志文件:验证 /var/log/mail.log/var/log/mail-replies/metroplex.log

/var/log/mail.log 可以验证消息是否抵达您的服务器。 下面是一个成功电子邮件回复的示例:

Oct 30 00:47:18 54-171-144-1 postfix/smtpd[13210]: connect from st11p06mm-asmtp002.mac.com[17.172.124.250]
Oct 30 00:47:19 54-171-144-1 postfix/smtpd[13210]: 51DC9163323: client=st11p06mm-asmtp002.mac.com[17.172.124.250]
Oct 30 00:47:19 54-171-144-1 postfix/cleanup[13216]: 51DC9163323: message-id=<b2b9c260-4aaa-4a93-acbb-0b2ddda68579@me.com>
Oct 30 00:47:19 54-171-144-1 postfix/qmgr[17250]: 51DC9163323: from=<tcook@icloud.com>, size=5048, nrcpt=1 (queue active)
Oct 30 00:47:19 54-171-144-1 postfix/virtual[13217]: 51DC9163323: to=<reply+i-1-1801beb4df676a79250d1e61e54ab763822c207d-5@reply.ghe.tjl2.co.ie>, relay=virtual, delay=0.12, delays=0.11/0/0/0, dsn=2.0.0, status=sent (delivered to maildir)
Oct 30 00:47:19 54-171-144-1 postfix/qmgr[17250]: 51DC9163323: removed
Oct 30 00:47:19 54-171-144-1 postfix/smtpd[13210]: disconnect from st11p06mm-asmtp002.mac.com[17.172.124.250]

请注意,客户端先连接,然后队列变成活动状态。 接着,消息递送,客户端从队列中移除,会话断开连接。

/var/log/mail-replies/metroplex.log 可以显示入站电子邮件是否正在处理,以便作为回复添� 到问题和拉取请求中。 下面是一个成功消息的示例:

[2014-10-30T00:47:23.306 INFO (5284) #] metroplex: processing <b2b9c260-4aaa-4a93-acbb-0b2ddda68579@me.com>
[2014-10-30T00:47:23.333 DEBUG (5284) #] Matched /data/user/mail/reply/new/1414630039.Vfc00I12000eM445784.ghe-tjl2-co-ie
[2014-10-30T00:47:23.334 DEBUG (5284) #] Moving /data/user/mail/reply/new/1414630039.Vfc00I12000eM445784.ghe-tjl2-co-ie => /data/user/incoming-mail/success

您将注意到,metroplex 会缓存、处理入站消息,然后将文件移动到 /data/user/incoming-mail/success 中。

验证 DNS 设置

为了正确处理入站电子邮件,您必须配置有效的 A 记录(或 CNAME)和 MX 记录。 更多信息请参阅“配置 DNS 和防火墙设置以允许� 入的电子邮件”。

检查防火墙或 AWS 安全组设置

如果 您的 GitHub Enterprise Server 实例 位于防火墙后或者正在通过 AWS 安全组提供,请确保端口 25 对将电子邮件发送到 reply@reply.[hostname] 的所有邮件服务器开放。

联系支持

如果您仍然� 法解决问题,请联系 GitHub Enterprise 支持。 请在您的电子邮件中附上 http(s)://[hostname]/setup/diagnostics 的输出文件,以便帮助我们排查您的问题。