“sendmail”进程是什么?

“sendmail”进程是什么?

当我输入topcommond 时,我看到很多sendmail,这些是什么sendmail?我从来没有在我的服务中设置过邮件。

SER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16110 root      17   0  234m  35m 8380 R 45.3  1.7   0:02.53 php
16101 root      17   0  230m  31m 8100 R 43.3  1.5   0:02.06 php
16092 root      15   0  219m  20m 8100 S 21.0  1.0   0:01.32 php
16104 root      15   0  226m  26m 8096 S 13.6  1.3   0:01.64 php
16107 root      16   0  215m  16m 8080 R  5.3  0.8   0:00.21 php
16096 root      15   0  216m  18m 8088 S  2.7  0.9   0:00.71 php
16122 smmsp     18   0 76032 4380 2904 S  1.7  0.2   0:00.07 sendmail
16125 smmsp     18   0 76024 4368 2904 S  1.7  0.2   0:00.06 sendmail
16137 root      17   0 80976 3836 1388 R  1.3  0.2   0:00.04 sendmail
16099 root      18   0 39100 1672  924 R  1.0  0.1   0:00.03 crond
16108 root      18   0 39100 1672  924 R  1.0  0.1   0:00.04 crond
16060 root      15   0 15004 1288  992 R  0.3  0.1   0:00.05 top
16091 root      18   0 39100 1672  924 S  0.3  0.1   0:00.02 crond
16095 root      18   0 39100 1672  924 S  0.3  0.1   0:00.01 crond
16102 root      18   0 39100 1672  924 S  0.3  0.1   0:00.03 crond
16116 smmsp     18   0 76024 4364 2904 S  0.3  0.2   0:00.02 sendmail
16117 smmsp     18   0 76024 4364 2904 S  0.3  0.2   0:00.02 sendmail

答案1

Sendmail 是一个可用于各种类 Unix 操作系统的 MTA(邮件传输代理)。它还可以充当 MDA(邮件传递代理)。它可能默认随您的操作系统安装,或者是其他软件的某种依赖项。

请参阅您的操作系统随附的 Sendmail 软件包文档,了解有关如何配置它的更多信息。根据您提供的信息,我无法确定您是否真的需要它。

答案2

其他答案告诉你sendmail是什么。我的答案是,这sendmail很可能是由您在 PHP 下运行的任何网站(可能是论坛、发送注册或订阅电子邮件)或类似的东西触发的。

答案3

根据评论更新

看来我的理解sendmail还很不完整,下面最初发布的许多信息都是不正确的。

这里的评论很容易被忽视,所以我在这里复制它们,以防止原文中的错误被解读为事实。

发送邮件

谢谢指正,拉杰

sendmail是一个完整的MTA。它处理服务器本地和外部的邮件发送和接收。

这一切都取决于配置。smtpdsendmail 包中没有单独的程序,sendmail它本身具有该功能。

newaliasesmailq是 sendmail 的帮助程序,但它们绝不是它运行所必需的。

阅读收到的邮件不是MTA的工作,就是穆阿的工作。许多类 Unix 系统默认包含一个名为 mail 的 MUA,但您可以安装任何其他系统。

平滑肌肌动蛋白

您对 SMTP 守护程序功能的理解也是错误的。 SMTP 守护进程用于接收来自 Internet 的入站邮件,而不是用于将出站邮件发送到 Internet。向 Internet 发送邮件是通过 SMTP 客户端完成的。

sendmail与其他一些功能相反,具有这两种功能MTA两者都有单独的进程。

例如,Postfix 有一个单独的 smtpd 和 smtp 进程,以及一堆其他进程)。

忽略这个,因为它是错误的

不过,阅读所描述的程序的手册页可能仍然是一个好主意。

长的答案是sendmail,实际上,这是构成完整邮件服务的众多程序之一。您完全有可能没有这个问题。尽管如此,当我第一次尝试运行自己的邮件服务器时,我花了很长时间和很多挫败感才弄清楚这一点,所以希望后续(希望是完整的)Unix 上邮件服务的解释可以帮助您避免这种情况。

Sendmail本身并不构成完整的邮件服务器,它只负责发送邮件。它不提供接收邮件或阅读收到的任何邮件的设施。您可以在手册页上找到对此的完整说明sendmail

如果您查看了上面链接的 sendmail 手册页,那么值得注意的是该页面顶部的服务列表,如下所示。

  • sendmail [标志] [地址...]
  • 新别名
  • 邮件q [-v]
  • 主机状态
  • 净化器
  • 邮件发送

自从我受虐到运行自己的邮件服务以来已经有几年了,所以我不记得其中一些服务的目的,但我将在这里提供一个简短的解释,说明我提供的服务至少模拟了事实.

发送邮件

这是在您的 top 命令中运行的进程,但它实际上不允许您向除相关服务器上的其他用户之外的任何人发送邮件。此进程所做的全部工作是接收邮件消息并将其路由到由 SMTP 进程读取的队列或本地收件箱。

新别名

该程序在本地用户帐户和外部电子邮件地址之间创建别名。因此,如果您的服务器有与之关联的公共域名,您可以使用新别名告诉 sendmail 重新生成其本地电子邮件地址别名数据库,该数据库本身存储在/etc/aliases.其过程是更改 的内容/etc/aliases,然后运行newaliases命令以使 sendmail 生成新的地址数据库。

邮件q

该程序允许您查看邮件队列的内容,以了解哪些邮件正在等待 SMTP 服务发送。 IIRC 队列本身存储在 的 子目录/var/spool/或 的子目录中/var/mail,但不要引用我的话,因为已经有一段时间了。

邮件发送

SMTP守护进程是实际处理将邮件发送到在本地别名文件 ( ) 中找不到的地址的处理/etc/aliases。它将从本地邮件队列中读取消息,并且当地址为远程时,将该消息发送到服务器链中的第一跳,该消息在到达目标收件人的收件箱之前将经过该服务器链。

相关内容