как отправить почту в python ssmtp vs smtplib - PullRequest
3 голосов
/ 19 апреля 2009

Мне нужно отправить письмо в Delbian Linux. Как отправить? Я запускаю свой сервер на 256 МБ Linux и слышу, что postfix и sendmail переполнены.

Недавно я натолкнулся на ssmtp, который выглядит как исполняемый файл, должен выполняться как процесс и вызываться через python с использованием модулей os.

В качестве альтернативы, Python уже предоставляет smtplib, который отлично работает со мной.

В чем преимущество использования ssmtp над smtplib в python?

Ответы [ 3 ]

5 голосов
/ 19 апреля 2009

В программе на Python преимущества нет.

Единственная цель ssmtp - заключить протокол SMTP в API sendmail. То есть он предоставляет программу /usr/sbin/sendmail, которая принимает те же параметры, аргументы и входные данные, что и полноценный sendmail (хотя большинство параметров ничего не делают); но за кулисами, вместо обработки самой электронной почты, он отправляет сообщение на SMTP-сервер. Это для систем, в которых должна присутствовать программа sendmail, возможно, потому, что они не понимают SMTP - например, я думаю, что в старых версиях PHP было это требование, и даже в последних версиях все еще может быть проще настроить PHP использовать так называемый интерфейс sendmail (т.е. программу sendmail), чем использовать SMTP напрямую. (Я не использовал PHP в течение некоторого времени, я не уверен насчет текущего статуса)

Однако в Python ситуация обратная: у вас есть встроенная библиотека, которая позволяет легко использовать SMTP напрямую, в то время как использование sendmail требует, чтобы вы вызывали модуль subprocess, который несколько неуклюж, но также очень зависит от вещей. которые не являются частью Python. Так что в принципе нет причин не использовать smtplib.

2 голосов
/ 20 апреля 2009

Кроме того, postfix очень легко установить в «спутниковом» режиме, где все, что он делает, это ставит в очередь и доставляет электронную почту для вас. Это намного проще, чем реализовать собственную очередь электронной почты. Большинство приличных систем управления пакетами позволят вам настроить его таким образом.

1 голос
/ 20 апреля 2009

Существуют и другие легкие SMTP-отправители, такие как msmtp , который я предпочитаю.

Но Postfix подходит для машины 256 Мб. Хорошая вещь о полном MTA, таком как Postfix, заключается в том, что он сохраняет сообщение и повторяет попытки, если целевой сервер не работает. С smtplib и сервером на удаленной машине, ваша программа теперь зависит от сети ...

...