我对sendmail提交队列的目的感到困惑(默认是/ var / spool / clientmqueue)。 我认为当sendmail运行在邮件提交程序模式而不是守护进程模式下时,它被用来存储消息……但这仍然令人困惑。
从蝙蝠书:
在非set-user-id root世界中,sendmail运行在两个伪装之下。 在一个伪装中,它以root身份运行,作为一个监听守护进程。 这个监听守护进程就像早期版本的监听守护进程一样,不同之处在于,不pipe是以谁的身份运行它,而是以root身份运行,只有在root运行它时。
在第二个伪装中,sendmail作为普通用户运行,收集本地提交的消息。 在这种操作模式下,sendmail的set-group-id是一个特殊的组,所以它运行在那个组中,不pipe谁运行它。 该组拥有和写入权限到一个单独的队列,本地提交的延迟邮件放置在该队列中。
sendmail在使用submit.cf时,使用/var/spool/clientmqueue
,这是仅包含客户端的邮件队列,用于保存未传递给sendmail守护进程的邮件。 仅客户端队列中的消息由客户端“守护进程”提供,它实际上充当客户端队列运行者对标准队列。
clientmqueue用于在主机上运行sendmail的非root用户提交的邮件,用于传递邮件,mqueue用于正在运行的sendmail守护进程(通常由SMTP提供)处理的消息。