如何用python ssmtp vs smtplib发送邮件

2024-10-01 13:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用delbian linux发送电子邮件。如何发送?我在256mblinuxbox上运行我的服务器,听说postfix和sendmail太过了。在

最近我遇到了ssmtp,它似乎是一个可执行文件,需要作为一个进程执行,并使用os模块通过python调用。在

另外,python已经提供了smtplib,它可以很好地与我一起工作。在

与python的smtplib相比,使用ssmtp的优势是什么?在


Tags: 模块服务器可执行文件进程os电子邮件linuxsendmail
3条回答

在Python程序中,没有任何优势。在

ssmtp的唯一目的是在sendmailapi中包装SMTP协议。也就是说,它提供了一个程序/usr/sbin/sendmail,该程序接受与完整的sendmail相同的选项、参数和输入(尽管大多数选项什么都不做);但在幕后,它不处理电子邮件本身,而是将消息发送到SMTP服务器。这是针对那些需要一个sendmail程序的系统,可能是因为他们不理解SMTP-例如,我认为PHP的旧版本有这个要求,即使在最近的版本中,配置PHP使用所谓的sendmail接口(即程序sendmail)可能比直接使用SMTP更容易。(我有一段时间没有使用PHP了,我不确定当前的状态)

但是,在Python中,情况正好相反:您有一个内置库,可以方便地直接使用SMTP,而使用sendmail需要调用subprocess模块,这有点笨重,而且非常依赖于Python中不属于它的东西。所以基本上没有理由不使用smtplib。在

还有其他轻量级的SMTP发送器,比如msmtp,我更喜欢它。在

但是后缀对于256 Mb的机器来说是可以的。像MTA这样的完整Postfix的好处是它保留邮件,并在目标服务器关闭时重试。使用smtplib和远程计算机上的服务器,您的程序现在依赖于网络。。。在

另外,postfix在“卫星”模式下非常容易安装,它所做的就是为您排队和发送电子邮件。比实现自己的电子邮件队列容易得多。大多数像样的包管理系统都会让你这样配置它。在

相关问题 更多 >