我需要在delbian linux中发送电子邮件。如何发送?我在256 MB的Linux机器上运行我的服务器,我听说postfix和sendmail有点矫枉过正。
最近我遇到了ssmtp,它似乎是一个可执行文件,需要作为一个进程执行,并使用os模块通过python调用。
或者,python已经提供了smtplib,它对我来说很好。
使用ssmtp优于python的smtplib有什么好处?
答案 0 :(得分:5)
在Python程序中,没有任何优势。
ssmtp的唯一目的是将SMTP协议包装在sendmail API中。也就是说,它提供了一个程序/usr/sbin/sendmail
,它接受与完整的sendmail相同的选项,参数和输入(尽管大多数选项什么都不做);但在幕后,它不是处理电子邮件本身,而是将邮件发送到SMTP服务器。这适用于需要有sendmail
程序的系统,可能是因为他们不了解SMTP - 例如,我认为旧版本的PHP有这个要求,即使在最近的版本中,它仍然可能更容易配置PHP使用所谓的sendmail接口(即程序sendmail
)而不是直接使用SMTP。 (我有一段时间没用过PHP,我不确定当前的状态)
然而,在Python中情况正好相反:你有一个内置库,可以直接使用SMTP,而使用sendmail
需要你调用subprocess
模块,这个模块有些笨重,而且非常依赖于不属于Python的东西。所以基本上没有理由不使用smtplib
。
答案 1 :(得分:2)
此外, postfix 非常容易在“卫星”模式下安装,它所做的就是排队并为您发送电子邮件。比实现自己的电子邮件队列更容易。最体面的包管理系统将允许您以这种方式配置它。
答案 2 :(得分:1)
还有其他轻量级SMTP发件人,例如我最喜欢的msmtp。
但Postfix适用于256 Mb机器。像Postfix这样的完整MTA的好处在于,如果目标服务器关闭,它会保留消息并重试。使用smtplib和远程计算机上的服务器,您现在的程序取决于网络......