как отправить почту в python ssmtp vs smtplib

Мне нужно отправить электронное письмо в delbian linux. Как отправить? Я запускаю свой сервер на 256-мегабайтной Linux-системе, и я слышал, что postfix и sendmail излишни.

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

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

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


person Krish    schedule 19.04.2009    source источник


Ответы (3)


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

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

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

person David Z    schedule 19.04.2009
comment
Мне кажется, что ssmtp также позволяет вам скрывать учетные данные вашей учетной записи и ограничивает возможности вашего приложения отправкой почты. Я что-то упускаю? - person kberg; 10.10.2016

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

person NickZoic    schedule 19.04.2009

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

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

person bortzmeyer    schedule 20.04.2009