这是我上一个问题的延续这里。故障排除让我更进一步,我认为我现在面临一组新问题。最初,我发现 sendmail 不再监听端口 25,但我通过增加 QueueLA 和 RefuseLA 的值解决了这个问题。我可以通过 telnet 连接到端口 25,并使用 SMTP 命令手动发送电子邮件。但是,当我尝试 sendmail 时:
[netcool1 (root)/]$ sendmail -v [email protected] < ~/testmessage
[email protected]... queued
[netcool1 (root)/]$ mailq
/var/spool/mqueue is empty
Total requests: 0
[netcool1 (root)/]$ cd /var/spool/mqueue/
[netcool1 (root)/var/spool/mqueue]$ ls -la
total 6
drwxr-x--- 2 root bin 2048 Jan 11 11:54 .
drwxr-xr-x 13 root bin 512 Jul 10 2009 ..
[netcool1 (root)/var/spool/mqueue]$ cd ../clientmqueue/
[netcool1 (root)/var/spool/clientmqueue]$ ls -la
total 76
drwxrwx--- 2 smmsp smmsp 22016 Jan 11 12:19 .
drwxr-xr-x 13 root bin 512 Jul 10 2009 ..
-rw-rw---- 1 smmsp smmsp 100 Jan 11 07:03 dfq0BC3b8H007834
-rw-rw---- 1 smmsp smmsp 99 Jan 11 07:33 dfq0BCXba1008078
-rw-rw---- 1 smmsp smmsp 15 Jan 11 12:02 dfq0BH29Zu010211
-rw-rw---- 1 smmsp smmsp 15 Jan 11 12:13 dfq0BHDeEA010348
-rw-rw---- 1 smmsp smmsp 117 Jan 11 12:16 dfq0BHGuda010384
-rw-rw---- 1 smmsp smmsp 117 Jan 11 12:18 dfq0BHI9Q4010389
-rw-rw---- 1 smmsp smmsp 15 Jan 11 12:19 dfq0BHJjEv010410
-rw-rw---- 1 smmsp smmsp 871 Jan 11 07:03 qfq0BC3b8H007834
-rw-rw---- 1 smmsp smmsp 870 Jan 11 07:33 qfq0BCXba1008078
-rw-rw---- 1 smmsp smmsp 542 Jan 11 12:02 qfq0BH29Zu010211
-rw-rw---- 1 smmsp smmsp 562 Jan 11 12:13 qfq0BHDeEA010348
-rw-rw---- 1 smmsp smmsp 583 Jan 11 12:16 qfq0BHGuda010384
-rw-rw---- 1 smmsp smmsp 583 Jan 11 12:18 qfq0BHI9Q4010389
-rw-rw---- 1 smmsp smmsp 562 Jan 11 12:19 qfq0BHJjEv010410
-rw------- 1 smmsp smmsp 34 Jan 11 12:12 sm-client.pid
[netcool1 (root)/var/spool/clientmqueue]$ sendmail -q -v
[netcool1 (root)/var/spool/clientmqueue]$ ls -la
total 76
drwxrwx--- 2 smmsp smmsp 22016 Jan 11 12:19 .
drwxr-xr-x 13 root bin 512 Jul 10 2009 ..
-rw-rw---- 1 smmsp smmsp 100 Jan 11 07:03 dfq0BC3b8H007834
-rw-rw---- 1 smmsp smmsp 99 Jan 11 07:33 dfq0BCXba1008078
-rw-rw---- 1 smmsp smmsp 15 Jan 11 12:02 dfq0BH29Zu010211
-rw-rw---- 1 smmsp smmsp 15 Jan 11 12:13 dfq0BHDeEA010348
-rw-rw---- 1 smmsp smmsp 117 Jan 11 12:16 dfq0BHGuda010384
-rw-rw---- 1 smmsp smmsp 117 Jan 11 12:18 dfq0BHI9Q4010389
-rw-rw---- 1 smmsp smmsp 15 Jan 11 12:19 dfq0BHJjEv010410
-rw-rw---- 1 smmsp smmsp 871 Jan 11 07:03 qfq0BC3b8H007834
-rw-rw---- 1 smmsp smmsp 870 Jan 11 07:33 qfq0BCXba1008078
-rw-rw---- 1 smmsp smmsp 542 Jan 11 12:02 qfq0BH29Zu010211
-rw-rw---- 1 smmsp smmsp 562 Jan 11 12:13 qfq0BHDeEA010348
-rw-rw---- 1 smmsp smmsp 583 Jan 11 12:16 qfq0BHGuda010384
-rw-rw---- 1 smmsp smmsp 583 Jan 11 12:18 qfq0BHI9Q4010389
-rw-rw---- 1 smmsp smmsp 562 Jan 11 12:19 qfq0BHJjEv010410
-rw------- 1 smmsp smmsp 34 Jan 11 12:12 sm-client.pid
[netcool1 (root)/var/spool/clientmqueue]$ cat sm-client.pid
10344
/usr/lib/sendmail -Ac -q15m
[netcool1 (root)/var/spool/clientmqueue]$
我已经为此工作了三天,如能得到任何帮助我将非常感激。
编辑:submit.mc 的内容(我在 /etc/mail 下能找到的唯一版本是在 /etc/mail/cf/cf 下):
$ more submit.mc
divert(-1)
#
# Copyright (c) 2001, 2002 Sendmail, Inc. and its suppliers.
# All rights reserved.
#
# By using this file, you agree to the terms and conditions set
# forth in the LICENSE file which can be found at the top level of
# the sendmail distribution.
#
#ident "@(#)submit.mc 1.3 02/12/29 SMI"
#
#
# This is the prototype file for a set-group-ID sm-msp sendmail that
# acts as a initial mail submission program.
#
divert(0)dnl
VERSIONID(`$Id: submit.mc,v 8.6.2.4 2002/12/29 03:54:34 ca Exp $')
define(`confCF_VERSION', `Submit')dnl
define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining
define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet
define(`confTIME_ZONE', `USE_TZ')dnl
define(`confDONT_INIT_GROUPS', `True')dnl
dnl
dnl If you use IPv6 only, change [127.0.0.1] to [IPv6:::1]
FEATURE(`msp', `[127.0.0.1]')dnl
我想知道这是否仍然与 RefuseLA 和 QueueLA 值有关。我将它们设置得非常高(QueueLA = 50,RefuseLA = 60),因为此服务器实际上只从脚本发送电子邮件,并且由于许多多线程侦听器而具有较高的 LA。增加的 RefuseLA 使 sendmail 再次在端口 25 上侦听(请参阅上一个问题),但 QueueLA 似乎对排队没有任何影响。但是,昨晚 19:00 左右,服务器突然发送了我白天发送的所有测试电子邮件。
答案1
由于 QueueLA 的默认值为 8 * numproc,而 RefuseLA 的默认值为 12 * numproc,因此 50 的值可能并不那么荒谬。但是,请尝试交换 QueueLA 和 RefuseLA 的值,以使 QueueLA > RefuseLA。此技巧来自 Vixie 和 Avolio(Sendmail 理论与实践):
“按照此处所示进行设置,Sendmail 会获得一个平均负载范围,在这个范围内,它能够从其队列中传递消息,但无法接收新消息。这是故意的。如果将 Ox 设置为小于 OX,Sendmail 则会获得一个平均负载范围,在这个范围内,它可以接收新邮件(从而添加到队列中),但无法传递任何排队的邮件。”
让我们知道发生了什么
答案2
实际上,您可以从 crontab 输出停止 sendmail。尝试找到 MAILTO 行并在 /etc/cron* 中注释/删除这些行,例如“grep -ri mailto /etc/cron*”...它将停止生成队列邮件。希望这能有所帮助