我刚刚将服务器从 FreeBSD 10.3 升级到 11.1。它现在运行的是 Sendmail 8.15.2 和 OpenSSL 1.0.2k-freebsd 2017 年 1 月 26 日。
自升级以来,发送邮件到我的服务器出现故障。我提高了日志级别,以使用 显示所有传入和传出的 SMTP 命令/usr/sbin/sendmail -d95.99 -bD -X /tmp/test.log
。典型的传入连接如下所示:
34431 >>> 220 localhost.FKEinternet.net ESMTP Sendmail 8.15.2/8.15.2; Thu, 8 Mar 2018 11:35:32 -0500 (EST)
34431 <<< EHLO [192.168.14.73]
34431 >>> 250-localhost.FKEinternet.net Hello rrcs-184-74-100-26.nys.biz.rr.com [184.74.100.26], pleased to meet you
34431 >>> 250-ENHANCEDSTATUSCODES
34431 >>> 250-PIPELINING
34431 >>> 250-8BITMIME
34431 >>> 250-SIZE
34431 >>> 250-DSN
34431 >>> 250-ETRN
34431 >>> 250-STARTTLS
34431 >>> 250-DELIVERBY
34431 >>> 250 HELP
34431 <<< STARTTLS
我/var/log/messages
发现
Mar 8 11:35:32 Dreamer kernel: pid 34431 (sendmail), uid 0: exited on signal 11
是否有崩溃日志可供我查看,以便查明发生了什么?我还能做什么来调试此问题?
编辑
除了两天前服务器升级期间创建的 和 实例外,sh.core
没有pkg.core
返回任何不到一年的核心文件。当 sendmail 实例崩溃时pkg-static.core
find / -name "*.core" -ls
每一个尝试发送一封邮件时,我本以为会找到一封不超过几分钟的邮件。什么可能会阻止.core
创建文件?
答案1
我在 DutchDaemon 于 2017 年 12 月 12 日的回复中找到了答案[sendmail] 大量“未发出 MAIL/EXPN/VRFY/ETRN”日志FreeBSD 论坛上的帖子:
标准安装将把类似这样的内容放入你的 .mc 文件中:
dnl Enable STARTTLS for receiving email.
define(`CERT_DIR', `/etc/mail/certs')dnl
define(`confSERVER_CERT', `CERT_DIR/host.cert')dnl
define(`confSERVER_KEY', `CERT_DIR/host.key')dnl
define(`confCLIENT_CERT', `CERT_DIR/host.cert')dnl
define(`confCLIENT_KEY', `CERT_DIR/host.key')dnl
define(`confCACERT', `CERT_DIR/cacert.pem')dnl
define(`confCACERT_PATH', `CERT_DIR')dnl
define(`confDH_PARAMETERS', `CERT_DIR/dh.param')dnl
我将该代码块与服务器文件中的内容进行了比较.mc
,发现它缺少define('confDH_PARAMETERS','CERT_DIR/dh.param')dnl
行。我添加了该行,sendmail
然后重新启动,现在它可以正常工作了。
我仍然想知道为什么从来没有.core
生成任何文件,正如 SirDice 在 FreeBSD 论坛上观察到的那样,
奇怪的是它居然崩溃了,我本来以为它会生成一个失败消息并拒绝运行,而不是启动,并且在您尝试使用它时出现段错误。