3

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

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

或者,python 已经提供了 smtplib,它对我来说很好用。

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

4

3 回答 3

5

在 Python 程序中,没有优势。

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

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

于 2009-04-19T08:03:55.413 回答
2

此外,postfix很容易在“卫星”模式下安装,它所做的只是为您排队和发送电子邮件。比实现自己的电子邮件队列要容易得多。大多数体面的包管理系统都会让你以这种方式配置它。

于 2009-04-19T23:42:01.383 回答
1

还有其他轻量级 SMTP 发件人,例如我更喜欢的msmtp 。

但是 Postfix 适合 256 Mb 的机器。像 Postfix 这样的完整 MTA 的好处是它会保留消息并在目标服务器关闭时重试。使用 smtplib 和远程计算机上的服务器,您的程序现在取决于网络...

于 2009-04-20T12:22:44.533 回答