conorgriffin Asked: 2010-10-18 11:48:19 +0800 CST2010-10-18 11:48:19 +0800 CST 2010-10-18 11:48:19 +0800 CST 如何设置邮件传输代理? 772 当我的 Ubuntu 服务器上发生特定事件时,我打算使用mutt通过cron或带有附件到我的 gmail 地址发送自动电子邮件。at目前,mutt无法将电子邮件发送到外部电子邮件地址,我相信这是因为我需要设置邮件传输代理。如何选择合适的 MTA 以及如何设置它以执行我需要它做的事情? email cron-jobs 3 个回答 Voted Best Answer Riccardo Murri 2010-10-18T12:49:34+08:002010-10-18T12:49:34+08:00 选择要安装的 MTA 时有几个选择;第一个是您是否需要只发送MTA 或您需要一个成熟的邮件服务器。 这篇 Unix.SE 帖子 提供了可用的仅发送 MTA 的完整列表;所有这些都已经为 Ubuntu 10.10 打包。在选择只发送 MTA 时,您可能需要考虑以下几点: 如果发生故障,它是否可以将电子邮件排队以供以后发送:IIRC,只能nullmailer这样做。 是否会替换系统邮件传递代理(Provides: mail-transport-agent在 的输出中查找一行apt-cache show package)。如果是这样,那么来自系统的所有邮件(包括来自 cron 作业的报告、流行度统计等)都将由您安装的 MTA 处理:如果您没有为root和其他用户设置正确的邮件别名,则电子邮件最终可能会发送到错误的地址(通常是您 ISP 的某些系统管理员)。目前,包nullmailer,esmtp-run(但不是 esmtp)ssmtp属于这一类。 所有只发送 MTA 只会将您的电子邮件转发到另一台服务器(称为“中继主机”或“智能主机”;通常是您的 ISP 的 SMTP 服务器),然后让它处理真实 Internet 邮件传递的所有细节。您需要弄清楚连接到 ISP 服务器是否有任何特殊要求(例如,某种身份验证或 TLS)并选择支持所需功能的 MTA(例如,ssmtp不支持任何类型的身份验证或 SSL/ TLS)。 成熟的邮件服务器包括exim、 postfix和 sendmail。Debian/Ubuntu 的安装后安装脚本将很好地为一些常见设置生成工作配置(仅将邮件递送到本地系统;通过“智能主机”发送电子邮件 - 即您汇集的邮件服务器您通过的所有电子邮件,通常是您的 ISP 的 SMTP 主机;具有完整入站和出站连接的互联网站点)。恕我直言,postfix 是最容易运行和配置的,但由于它功能强大,它的配置手册比任何只发送 MTA 都要长。 此外,设置邮件服务器的真正风险在于,如果您在本地配置中犯了错误,您最终会将邮件发送到错误的地方(阅读:丢失),或者更糟糕的是使用开放式中继系统垃圾邮件发送者可以使用它(相信我,他们可以在您意识到您的服务器是一个开放中继之前找到一个开放中继)。 我的建议是从只发送 MTA 开始,然后仅在您认为需要时才升级到完整的邮件服务器(如果您只想将电子邮件发送到您的 GMail 地址,则情况并非如此)。 ixtmixilix 2010-10-18T11:52:31+08:002010-10-18T11:52:31+08:00 我会推荐msmtp。设置其他邮件系统,例如sendmail,绝对是一件很麻烦的事情。msmtp设置完成后,您可以将它与 一起使用,mutt也可以伪装成sendmail这样,程序就不会知道这两个 MTA 之间的区别。网站上提供了完整的详细信息。 Tomofumi 2012-03-20T22:06:56+08:002012-03-20T22:06:56+08:00 根据您的 Ubuntu 版本,以下链接提供了您可以选择的所有 MTA 选项: http://packages.ubuntu.com/precise/mail-transport-agent(适用于 12.04) http://packages.ubuntu.com/trusty/mail-transport-agent(适用于 14.04) 就个人而言,我发现它ssmtp很容易设置和运行,只需 2 个命令即可: $ sudo aptitude install mailutils ssmtp $ sudo dpkg-reconfigure ssmtp
选择要安装的 MTA 时有几个选择;第一个是您是否需要只发送MTA 或您需要一个成熟的邮件服务器。
这篇 Unix.SE 帖子 提供了可用的仅发送 MTA 的完整列表;所有这些都已经为 Ubuntu 10.10 打包。在选择只发送 MTA 时,您可能需要考虑以下几点:
如果发生故障,它是否可以将电子邮件排队以供以后发送:IIRC,只能
nullmailer
这样做。是否会替换系统邮件传递代理(
Provides: mail-transport-agent
在 的输出中查找一行apt-cache show package
)。如果是这样,那么来自系统的所有邮件(包括来自 cron 作业的报告、流行度统计等)都将由您安装的 MTA 处理:如果您没有为root和其他用户设置正确的邮件别名,则电子邮件最终可能会发送到错误的地址(通常是您 ISP 的某些系统管理员)。目前,包nullmailer
,esmtp-run
(但不是esmtp
)ssmtp
属于这一类。所有只发送 MTA 只会将您的电子邮件转发到另一台服务器(称为“中继主机”或“智能主机”;通常是您的 ISP 的 SMTP 服务器),然后让它处理真实 Internet 邮件传递的所有细节。您需要弄清楚连接到 ISP 服务器是否有任何特殊要求(例如,某种身份验证或 TLS)并选择支持所需功能的 MTA(例如,
ssmtp
不支持任何类型的身份验证或 SSL/ TLS)。成熟的邮件服务器包括exim、 postfix和 sendmail。Debian/Ubuntu 的安装后安装脚本将很好地为一些常见设置生成工作配置(仅将邮件递送到本地系统;通过“智能主机”发送电子邮件 - 即您汇集的邮件服务器您通过的所有电子邮件,通常是您的 ISP 的 SMTP 主机;具有完整入站和出站连接的互联网站点)。恕我直言,postfix 是最容易运行和配置的,但由于它功能强大,它的配置手册比任何只发送 MTA 都要长。
此外,设置邮件服务器的真正风险在于,如果您在本地配置中犯了错误,您最终会将邮件发送到错误的地方(阅读:丢失),或者更糟糕的是使用开放式中继系统垃圾邮件发送者可以使用它(相信我,他们可以在您意识到您的服务器是一个开放中继之前找到一个开放中继)。
我的建议是从只发送 MTA 开始,然后仅在您认为需要时才升级到完整的邮件服务器(如果您只想将电子邮件发送到您的 GMail 地址,则情况并非如此)。
我会推荐
msmtp
。设置其他邮件系统,例如sendmail
,绝对是一件很麻烦的事情。msmtp
设置完成后,您可以将它与 一起使用,mutt
也可以伪装成sendmail
这样,程序就不会知道这两个 MTA 之间的区别。网站上提供了完整的详细信息。根据您的 Ubuntu 版本,以下链接提供了您可以选择的所有 MTA 选项:
http://packages.ubuntu.com/precise/mail-transport-agent(适用于 12.04)
http://packages.ubuntu.com/trusty/mail-transport-agent(适用于 14.04)
就个人而言,我发现它
ssmtp
很容易设置和运行,只需 2 个命令即可: