当我的Ubuntu服务器上发生特定事件时,我打算用来mutt
通过gmail地址cron
或通过at
其附件发送自动电子邮件。当前,mutt
无法将电子邮件发送到外部电子邮件地址,我相信这是因为我需要设置邮件传输代理。如何选择合适的MTA,如何设置它以执行我需要做的事情?
当我的Ubuntu服务器上发生特定事件时,我打算用来mutt
通过gmail地址cron
或通过at
其附件发送自动电子邮件。当前,mutt
无法将电子邮件发送到外部电子邮件地址,我相信这是因为我需要设置邮件传输代理。如何选择合适的MTA,如何设置它以执行我需要做的事情?
Answers:
选择要安装的MTA时,需要做出一些选择。第一个是您想要只发送 MTA还是需要成熟的邮件服务器。
这篇Unix.SE帖子 提供了可用的仅发送MTA的完整列表。它们都已经为Ubuntu 10.10打包了。选择仅发送MTA时,您可能需要考虑以下几点:
如果发生故障,它是否可以将电子邮件排队以便以后发送:IIRC,只能nullmailer
这样做。
是否将替换系统邮件传递代理(Provides: mail-transport-agent
在的输出中查找一行apt-cache
show package
)。如果是这样,则来自系统的所有邮件(包括来自cron作业的报告,受欢迎程度统计信息等)都将由您安装的MTA处理:如果未为root用户和其他用户设置正确的邮件别名,则该电子邮件可能最终会在错误的地址(通常是您的ISP处的某些sysadmin)下交付。目前,包nullmailer
,esmtp-run
(但不是
esmtp
)ssmtp
属于这一类。
所有仅发送的MTA只会将您的电子邮件转发到另一台服务器(称为“中继主机”或“ smarthost”;通常是您的ISP的SMTP服务器),然后让它处理实际Internet邮件传递的所有详细信息。您需要确定连接到ISP服务器是否有特殊要求(例如某种身份验证或TLS),并选择支持所需功能(例如,ssmtp
不支持任何种类的身份验证或SSL / TLS)。
完善的邮件服务器包括exim, postfix和 sendmail。Debian / Ubuntu的安装后安装脚本将为生成一些常用设置(仅将邮件传递到本地系统;通过“ smarthost”发送电子邮件,即您将其合并的邮件服务器)生成有效的配置,做得很好。所有电子邮件,通常是ISP的SMTP主机;具有完全入站和出站连接的Internet站点)。恕我直言,postfix是最易于运行和配置的,但是由于其功能如此强大,因此其配置手册比任何仅发送MTA的方法都要长。
此外,设置邮件服务器的真正风险是,如果您在本地配置中出错,最终会将邮件传递到错误的位置(读取:丢失),或者使用开放中继系统将邮件发送到-worse-可以被垃圾邮件发送者使用(相信我,他们可以在您意识到服务器是一台之前找到一个开放中继)。
我的建议是,从仅发送MTA开始,然后仅在看到需要时才升级到完整的邮件服务器(如果您只想将电子邮件发送到GMail地址,则不是这种情况)。
msmtp
(如ixtmixilix的答案中所建议)或从我上面发布的URL的列表中选择一个即可。
根据您的Ubuntu版本,以下链接提供了您可以选择的所有MTA选择:
http://packages.ubuntu.com/precise/mail-transport-agent(适用于12.04)
http://packages.ubuntu.com/trusty/mail-transport-agent(适用于14.04)
我个人觉得这ssmtp
很容易设置和运行,只需执行以下两个命令:
$ sudo aptitude install mailutils ssmtp
$ sudo dpkg-reconfigure ssmtp