![Sendmail 排队且未及时发送本地邮件](https://linux22.com/image/144151/Sendmail%20%E6%8E%92%E9%98%9F%E4%B8%94%E6%9C%AA%E5%8F%8A%E6%97%B6%E5%8F%91%E9%80%81%E6%9C%AC%E5%9C%B0%E9%82%AE%E4%BB%B6.png)
操作系统:2.6.32-696.23.1.el6.x86_64(Centos 6)
发送邮件:8.14.4
sendmail 将为本地用户接收来自外部用户的邮件,但会将其排队,并且不会立即发送,而是会突然发送;样本收据行:
11 月 1 日 15:56:17 服务器 sendmail[18406]:wA1JqHk8018406:to=,延迟=00:00:00,mailer=local,pri=83669,dsn=4.4.3,stat=queued
然后:
11 月 1 日 22:50:31 服务器 sendmail[19747]: wA1JqHk8018406: to=, 延迟=06:54:14, xdelay=00:00:00, mailer=local, pri=713669, dsn=2.0.0, stat=发送
当时还有 27 条消息被标记为“stat=Sent”。
有什么有用的 sendmail 命令来调试这个吗? .mc 或 .cf 文件中需要检查的内容?
我应该提到的是,我在初始交易中收到以下消息:
11 月 1 日 15:56:18 服务器 sendmail[18406]: STARTTLS: 写入错误=系统调用错误 (-1),errno=104,get_error=错误:00000000:lib(0):func(0):reason(0),重试=99,ssl_err=5
除了使用 ssldump 之外,我找不到太多关于此错误的信息。我不知道这是否与主要问题相关。
答案1
看来您需要深入研究 .cf 文件和 .config 文件并编辑诸如
QUEUE_INTERVAL="10m";
如果您将这些值设置得足够低,则有望修复速度设置。
要调试,请在一个窗口中运行以下命令
while true; do mailq; sleep 1s; done
检查事物进入和离开的速度有多快。尝试使用wire shark 捕获发送器和接收器上的网络会话,这将帮助您确定是否涉及网络延迟。
尝试使用这些标志运行
-N 'delay, success, failure'
-X logfile.log
-bv
也尝试一下
postconf readme_directory or postconf html_directory
为了找到对调试非常有用的DEBUG_README