我正在寻找 Ubuntu 服务器上的邮件选项,可以将其编码到 shell 脚本中以通过电子邮件触发脚本完成。从代码和邮件程序角度来看,完成此任务的最佳方法是什么?我曾希望 Outlook 可以正常工作,但我发现 wine 表明它不好用。电子邮件帐户将是工作帐户。这将是我第一次在 Linux 机器上设置电子邮件功能。我通常将 Ubuntu 用作文件的 mod 服务器。
编辑:我希望在脚本完成后从服务器发送。如果有更好的建议,我愿意更改。
答案1
从 shell 脚本发送电子邮件的标准方法是mail
使用软件包提供的命令bsd-mailx
。要使用它,请执行以下操作:
echo 'This is the message.' | mail -s 'Subject line here' [email protected]
如需更多控制,标准方法是使用sendmail
命令。该mail
命令实际上只是一个sendmail
使用正确格式的电子邮件进行调用的包装器。
该sendmail
命令是 Unix 系统上邮件传输代理 (MTA) 的标准 Unix 接口。传统上,所有 Unix 系统都有一个。但由于它们通常需要配置,Ubuntu 桌面版和服务器版都默认不安装。所以你需要自己安装一个 MTA。
Postfix 和 Exim 可能是目前最流行的两个 MTA。两者都包装精良,开箱即用。但它们功能齐全。它们可以进行最低限度的配置,并且软件包会帮助您自动完成此操作,但您在网上找到的文档通常假设您已配置完整的 MTA 功能(例如用于接收电子邮件的邮箱等)。
如果您只想发送外发邮件,nullmailer 是个不错的选择。它是一个最小的 MTA,旨在提供标准sendmail
接口,因此堆栈上的所有内容都可以正常工作,但它只发送邮件。
Postfix、Exim 都在主版本中,因此在 Ubuntu 中得到很好的支持。nullmailer 属于 Universe,因此仅受社区支持。
总结一下:
选择并安装 MTA。如果只是从 shell 脚本发送邮件,那么 nullmailer 是一个不错的选择。
安装该
bsd-mailx
软件包然后使用mail
它从你的 shell 脚本发送电子邮件。