如何设置邮件传输代理?

con*_*fin 19 email cron-jobs

当我的 Ubuntu 服务器上发生特定事件时,我打算使用mutt通过cronat带有附件的自动电子邮件发送到我的 gmail 地址。目前,mutt无法向外部电子邮件地址发送电子邮件,我相信这是因为我需要设置邮件传输代理。如何选择合适的 MTA 以及如何设置它以执行我需要它执行的操作?

Ric*_*rri 21

选择要安装的 MTA 时有几个选择;第一个是您是否想要只发送MTA 或您需要一个成熟的邮件服务器。

这篇 Unix.SE 帖子 提供了可用的仅发送 MTA 的完整列表;所有这些都已经为 Ubuntu 10.10 打包。在选择仅发送 MTA 时,您可能需要考虑以下几点:

  1. 是否可以将电子邮件排队以便在发生故障时稍后发送:IIRC,只能nullmailer这样做。

  2. 是否会替换系统邮件传递代理(Provides: mail-transport-agent在 的输出中查找一行apt-cache show package)。如果是,那么所有源自系统的邮件(包括来自 cron 作业的报告、流行度统计等)都将由您安装的 MTA 处理:如果您没有为root和其他用户设置正确的邮件别名,电子邮件最终可能会发送到错误的地址(通常是您 ISP 的某些系统管理员)。目前,包nullmailer, esmtp-run(但不是 esmtp)和ssmtp属于这一类。

  3. 所有只发送的 MTA 只会将您的电子邮件转发到另一台服务器(称为“中继主机”或“智能主机”;通常是您的 ISP 的 SMTP 服务器),然后让它处理真实 Internet 邮件传递的所有细节。您需要弄清楚连接到 ISP 服务器是否有任何特殊要求(例如,某种身份验证或 TLS)并选择支持所需功能的 MTA(例如,ssmtp不支持任何类型的身份验证或 SSL/ TLS)。

成熟的邮件服务器包括eximpostfixsendmail。Debian/Ubuntu 的安装后安装脚本可以很好地为一些常见设置生成工作配置(仅将邮件发送到本地系统;通过“智能主机”发送电子邮件——即您汇集的邮件服务器您通过的所有电子邮件,通常是您的 ISP 的 SMTP 主机;具有完全入站和出站连接的互联网站点)。恕我直言,postfix 是最容易运行和配置的,但由于它的功能如此强大,它的配置手册比任何仅发送 MTA 都要长。

此外,设置邮件服务器的真正风险在于,如果您在本地配置中犯了错误,您最终会将邮件发送到错误的地方(阅读:丢失)或更糟的是,使用开放式中继系统可以被垃圾邮件发送者使用(并且,相信我,他们可以在您意识到您的服务器是其中一个之前找到一个开放的中继)。

我的建议是从只发送 MTA 开始,然后仅在您认为需要时才升级到完整的邮件服务器(如果您只想将电子邮件发送到您的 GMail 地址,则情况并非如此)。


ixt*_*lix 6

我会推荐msmtp。设置其他邮件系统,例如sendmail,绝对是一件很麻烦的事情。一旦你msmtp的设置,你可以使用它mutt,并且你还可以伪装它sendmail,这样的程序不知道这两个MTA之间的差异。网站上提供完整的详细信息