Тестирование отправки электронной почты

любые советы по проверке отправки электронной почты? Помимо создания учетной записи gmail, особенно для получения этих писем?

Я хотел бы, возможно, хранить электронные письма локально, в папке по мере их отправки.

7 Solutions collect form web for “Тестирование отправки электронной почты”

Вы можете использовать файловую систему для отправки электронных писем, что является очень удобным решением для разработки и тестирования; электронные письма не отправляются, а сохраняются в папке, которую вы можете указать!

В тестовой среде Django есть встроенные помощники, которые помогут вам тестировать службу электронной почты .

Пример из документации (короткая версия):

from django.core import mail from django.test import TestCase class EmailTest(TestCase): def test_send_email(self): mail.send_mail('Subject here', 'Here is the message.', 'from@example.com', ['to@example.com'], fail_silently=False) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].subject, 'Subject here') 

Если вы участвуете в модульном тестировании, лучшим решением является использование внутренней памяти, предоставляемой django.

 EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend' 

Возьмем случай использования в качестве инструмента py.test

 @pytest.fixture(autouse=True) def email_backend_setup(self, settings): settings.EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend' 

В каждом тесте mail.outbox сбрасывается сервером, поэтому между тестами нет побочных эффектов.

 from django.core import mail def test_send(self): mail.send_mail('subject', 'body.', 'from@example.com', ['to@example.com']) assert len(mail.outbox) == 1 def test_send_again(self): mail.send_mail('subject', 'body.', 'from@example.com', ['to@example.com']) assert len(mail.outbox) == 1 

Для любого проекта, который не требует отправки вложений, я использую django-mailer , который имеет преимущество всех исходящих писем, заканчивающихся в очереди, пока я не инициирую их отправку, и даже после их отправки они записываются в журнал – все из которых видны в Admin, что позволяет быстро проверить, что ваш код электронной почты пытается сбить в промежутки.

Django также имеет встроенный адрес электронной почты. Более подробная информация содержится в документах в разделе «Внутренняя память» . Это присутствует в Django 1.6, не уверен, что он присутствует в чем-то ранее.

Исправление SMTPLib для тестирования может помочь протестировать отправку писем без их отправки.

Использование бэкэнда файла работает хорошо, но я считаю, что для файловых систем для поиска электронных писем немного сложно. Вы можете использовать mailcatcher https://github.com/sj26/mailcatcher для захвата электронной почты и отображения их в веб-интерфейсе.

Чтобы использовать mailcatcher с Django, вам нужно добавить что-то вроде следующего к вашему settings.py:

 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = '127.0.0.1' EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_PORT = 1025 EMAIL_USE_TLS = False 
  • Django отправляет электронную почту
  • Новое для Python, ошибка SMTP GMail
  • python smtp starttls () дает мне ошибку SMTPServerDisconnect при попытке отправить электронную почту через django / python
  • отправка писем в странном поведении питона
  • Письма не отправляются людям в СС
  • Python - Как отправить сообщение utf-8?
  • Как отправить электронную почту через Django?
  • Ответ на электронную почту с помощью python 3.4
  • Python - лучший язык программирования в мире.