我正在尝试连接我们新的 MantisBT 错误跟踪系统的(重要)电子邮件输出,以将我们的电子邮件服务器用作智能主机。这个想法是,MantisBT 系统将 TLS 流量发送到电子邮件服务器上的端口 587,以特殊用户身份进行身份验证([电子邮件保护]),然后电子邮件服务器将其发送到目的地。我的理解是正确的做法,但我可能错了。
MantisBT 使用 phpmailer,我认为它已正确配置为使用 SMTP 587、用户 ID 等等。电子邮件服务器是一个长期存在的 iRedMail 安装(内部使用 postfix),没有已知问题。我们使用此技术为其他内部服务器发送流量,没有任何问题。两台服务器都运行 Rocky Linux 9.1。
问题在于 MantisBT 发送消息的所有尝试都会被立即丢弃。
我在 postfix 中启用了 MantisBT ip 的详细调试,并得到以下结果(为清楚起见,删除了日志左侧的内容):
> unknown[159.xx.xx.20]: 220 mailserver.mydomain.com ESMTP Postfix
watchdog_pat: 0x564330697960
< unknown[159.xx.xx.20]: ????
> unknown[159.xx.xx.20]: 500 5.5.2 Error: bad UTF-8 syntax
watchdog_pat: 0x564330697960
< unknown[159.xx.xx.20]: ??????
> unknown[159.xx.xx.20]: 500 5.5.2 Error: bad UTF-8 syntax
watchdog_pat: 0x564330697960
< unknown[159.xx.xx.20]:
dict_pcre_lookup: /etc/postfix/command_filter.pcre:
> unknown[159.xx.xx.20]: 500 5.5.2 Error: bad syntax
watchdog_pat: 0x564330697960
smtp_get: EOF
有人认识到这一点吗?为什么 phpmailer 会在 SMTP 交换中将四个问号作为命令发送?这与 STARTTLS 有关吗?
感谢大家的帮助!
答案1
我有点惭愧地承认,这是由于 MantisBT 电子邮件配置错误造成的。我曾使用$g_smtp_connection_mode = 'ssl';应该在的地方‘tls’。因此它立即使用 SSL,而不是以纯文本启动,然后在 STARTTLS 之后切换到加密通信。因此,后缀日志中的 ???? 显示不可打印(加密)字符。