отправка электронной почты django с постфиксом (без явного постфиксного сервера) - PullRequest
1 голос
/ 05 октября 2011

Я хотел бы эмулировать команду postfix sendmail в Django, где мне не нужно явно запускать сервер postfix.

Например, если я просто ввожу в командной строке следующее:

sendmail recipient@example.com
my message body
^D

Это отправит сообщение на receient@example.com.Мне не нужно явно запускать постфиксный сервер.

Похоже, что другие языки (Perl и PHP) имеют привязки, которые в основном повторяют это.Тем не менее, я не смог найти способ сделать это в Django / Python.Самое близкое, что я получил, это установив

EMAIL_HOST = 'localhost'

в settings.py, а затем вручную выполнив

postfix start

. Это позволяет команде django send_mail () делать свое дело, но это не так.Есть ли способ добиться этого без работающего постфиксного сервера в фоновом режиме?Как другие среды достигают этого успешно?

Спасибо -S

(И нет - я не хочу настраивать стороннюю учетную запись gmail для этого - это очень надуманный вопрос).

Ответы [ 2 ]

0 голосов
/ 08 июня 2012

Простым решением для эмуляции доставки электронной почты является сервер отладки Python. Следующее запускает его на порту 1025 в режиме smtp:

python -m smtpd -n -c DebuggingServer localhost:1025

Вам необходимо убедиться, что ваш тестовый сервер Django отправляет электронную почту через порт 1025 на локальном хосте, поэтому вам может понадобиться это в вашем settings.py:

EMAIL_PORT = 1025

Если все работает правильно, тестовый сервер будет просто отображать всю почту, отправленную вашим Django напрямую на терминал, чтобы вы могли следить за выводом в процессе разработки. Я использовал это недавно, когда изо всех сил пытался заставить postfix работать на Ubuntu box - он просто зависал и ломал тестовый сервер Django на send_mail().

Вот документ Django с дополнительной информацией о тестировании электронной почты .

0 голосов
/ 05 октября 2011

Может быть , это поможет вам.Лично я не пробовал, но, похоже, подойдет вам без проблем, связанных с настройкой постфиксного сервера.

...