不同邮件提供商的 notification_email 和 reply_by_email_addresses 出现邮件发送问题

大家好,最近我在配置 QQ 企业邮箱(腾讯企业邮箱)作为发件人时遇到了一些问题。我的邮件配置如下:

DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: username@domain.tld
DISCOURSE_SMTP_PASSWORD: ***

我还在设置面板中配置了 notification_email

然而,当我尝试从面板发送测试邮件时,系统总是返回错误:“501 mail from address must be same as authorization user”(发件人地址必须与授权用户相同)。

我已双重确认 DISCOURSE_SMTP_USER_NAMEnotification_email 是同一个邮箱地址,并且我的 SMTP 设置也在 SMTP Test Tool 上通过了测试。

由于目前我不知道是邮件配置的哪一部分出了问题,请问是否有任何方法可以帮我调试这个问题,或者查看 Discourse 实例尝试发送的原始邮件内容,以便我诊断邮件的 from: 地址部分是否正确?

非常感谢您的任何帮助或建议。

以下是我参考的一些关于配置邮件的帖子:
https://community.jenkins-zh.cn/t/discourse/202

经过一番调查,我认为这个问题可能与 notification_emailreply_by_email_addresses 之间的冲突有关。当这两个变量同时配置时,发出的邮件似乎将 reply_by_email_addresses 用作其 from: 地址,这可能与以下代码有关:

然而,当我将通知邮件切换到具有类似 SMTP 配置的 Office 365 时,邮件可以正常发送。

  #DISCOURSE_SMTP_ADDRESS: outlook.office365.com
  #DISCOURSE_SMTP_AUTHENTICATION: login
  #DISCOURSE_SMTP_ENABLE_START_TLS: true
  #DISCOURSE_SMTP_PORT: 587
  #DISCOURSE_SMTP_USER_NAME: 365@domain.tld
  #DISCOURSE_SMTP_PASSWORD: ***

推测这种不同行为的原因可能是:Office 365 在发送邮件时不会验证 from: 字段,而仅在发送邮件时将 from: 字段重写为 Office 365 账户的用户名;而 QQ 企业邮箱会验证发送邮件的 from: 字段,如果 from: 字段不正确,则可能导致上述 501 错误