【问题标题】:Sendmail runs a smtp server(daemon) in the background?Sendmail 在后台运行 smtp 服务器(守护进程)?
【发布时间】:2009-08-29 03:52:28
【问题描述】:
我对电子邮件领域比较陌生。只是逐个学习有关电子邮件内部结构的教程。我的要求是我需要从我的虚拟主机发送电子邮件和接收电子邮件。为此,我需要一个运行正确的 smtp 服务器(守护进程)?我最近研究了 MTA,它负责将电子邮件从一台主机传输到另一台主机。所以这个 smtp 服务器(守护进程)充当 MTA。而且我还研究过 sendmail 是一个 MTA,归结为 sendmail 在后台运行一个 smtp 守护进程。对吧?
【问题讨论】:
标签:
email
smtp
sysadmin
sendmail
【解决方案1】:
说sendmail 是 一个SMTP 守护程序可能比说它运行一个SMTP 守护程序更公平,因为sendmail 是相当单一的。但基本上你做对了——为了接收电子邮件,当传入连接到来时,你需要一个 MTA 在端口 25 上侦听。 MTA 有很多选择。我更喜欢 postfix,因为它不是单一的,它有一个非常容易阅读的配置文件,并且它有一个很好的安全模型。其他不错的选择是 exim 和 qmail。
对于外发邮件,您需要一个程序来确定邮件应该去往哪里,并与该收件人的端口 25 建立连接。同样,几乎任何 MTA 都会为您完成此操作,但有些程序会想要发送邮件将尝试直接执行此操作,而不是调用本地 MTA。这样做的问题是,他们必须复制 MTA 为您提供的所有内容,例如知道如何在无法联系到邮件接收者时回退并重试。
【解决方案2】:
您需要运行守护程序来接收电子邮件并在电子邮件因某种原因发送失败时重新发送。
要发送它们,您只需调用sendmail,它将连接到目标的sendmail(当然,它作为守护程序运行),向您发送邮件并退出。
如果您从网站发送此邮件,则可以使用脚本语言的邮件功能,因为在繁重的负载下生成进程是非常昂贵的事情。