我对 sendmail 提交队列(默认情况下为 /var/spool/clientmqueue)的用途感到困惑。我认为它是在 sendmail 以邮件提交程序模式而不是守护进程模式运行时用于存储消息...但这仍然令人困惑。
答案1
摘自蝙蝠书:
在非设置用户 ID 的 root 世界中,sendmail 以两种形式运行。一种形式是,它由 root 运行,充当侦听守护进程。此侦听守护进程与早期版本的侦听守护进程一样,不同之处在于,它现在仅当 root 运行它时才以 root 身份运行,而不是无论谁运行它都以 root 身份运行。
在第二种情况下,sendmail 以普通用户身份运行,以收集本地提交的消息。在这种操作模式下,sendmail 被设置为一个特殊组,因此无论谁运行它,它都会在该组中运行。该组拥有一个单独的队列,并具有写入权限,本地提交的延迟消息将放入该队列中。
答案2
sendmail 使用 submit.cf 时/var/spool/clientmqueue
,会使用客户端专用邮件队列,该队列保存未传送到 sendmail 守护程序的消息。客户端专用队列中的消息由客户端“守护程序”传送,该守护程序实际上充当客户端队列运行程序而非标准队列。
答案3
clientmqueue 用于在主机上本地运行 sendmail 的非 root 用户提交的消息以传递邮件,mqueue 用于正在运行的 sendmail 守护进程处理的消息(通常由 SMTP 传递)。