从没有本地邮件服务器的shell脚本发送电子邮件

我怎么能从一个shellcript(通常是cronjob)发送电子邮件,而无需在同一主机上运行邮件服务器。 使用smtp服务器。 运行Ubuntu。

我看了各种教程,但无法find一个合适的方法(简单和安全)。

谢谢

斯文

如果是Ubuntu,那么你有python,可以使用它的smtplib模块(意味着在同一主机上没有MTA)。 下面有一个小样本来帮助你开始(你可能想把username / pass / config放在一个ini文件中,做一些错误检查等等,但是'starttls''一行encryption了其他的smtp会话如果服务器支持它)。 这给你简单而安全。 有可能添加附件等等一些额外的工作。

你会这样称呼它:mailsender.py“这是我的信息”。

#!/usr/bin/python import smtplib import sys message = sys.argv[1] server = smtplib.SMTP('smtp.gmail.com', 587) server.ehlo() server.starttls() server.ehlo() server.login('[email protected]', 'password') server.sendmail('[email protected]', '[email protected]', message) server.rset() server.quit() 

你可以从你的cron作业或shell脚本中调用“mailsender.py”。

你可以在继电器模式下安装postfix或其他东西,然后使用mail(x)或者mutt来发送邮件。 两者都可以从命令行发送邮件。

Ubuntu上的一个很好的select可能是作为MTA的nullmailer,因为它被devise为仅继电器操作。