Трудность отправки электронной почты с использованием Python
Я пытаюсь заставить Python отправлять электронные письма. Сначала я запустил python smptd следующим образом:
python -m smtpd -n -c DebuggingServer localhost:1025
Затем, адаптируя пример из https://www.tutorialspoint.com/python/python_sending_email.htm, у меня есть следующий скрипт:
#!/usr/bin/python
import smtplib
sender = 'from@fromdomain.com'
receivers = ['brt381@gmail.com']
message = """From: From Person <from@fromdomain.com>
To: To Person <brt381@gmail.com>
Subject: SMTP e-mail test
This is a test e-mail message.
"""
try:
smtpObj = smtplib.SMTP('localhost:1025')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except SMTPException:
print "Error: unable to send email"
Когда я запускаю этот скрипт, я получаю сообщение "Успешно отправлено письмо". В моем другом терминальном окне (то, которое содержит python smptd), это показывает это после запуска скрипта:
---------- MESSAGE FOLLOWS ----------
From: From Person <from@fromdomain.com>
To: To Person <brt381@gmail.com>
Subject: SMTP e-mail test
X-Peer: ::1
This is a test e-mail message.
------------ END MESSAGE ------------
Но... электронное письмо не отправляется. Есть идеи, что может быть не так? Это работает просто отлично - электронная почта отправляется:
/usr/sbin/sendmail brt381@gmail.com <<<"hello"
1 ответ
На самом деле вы отправляете (в первом примере) свою электронную почту через локальный SMTP-сервер разработки, потому что вы упоминаете DebuggingServer
класс, который, как сказано в документации:
Создайте новый сервер отладки. Аргументы в соответствии с SMTPServer. Сообщения будут отброшены и напечатаны на стандартный вывод.