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

любые советы по проверке отправки электронной почты? Помимо создания учетной записи 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 
Interesting Posts

Есть ли библиотека для сравнения моих приложений Django для SQL?

Объект 'list' не имеет атрибута 'shape'

как проверить, что два сегмента массивов numpy одинаковы (или перекрываются)?

Распределенное обучение с помощью tf.estimator приводит к дополнительным инструкциям

Как определить два поля «уникальный» как пара

Какова информация о реализации для перечисления?

Повысить ошибку, если понимание Python dict перезаписывает ключ

Замена fcntl в Windows

Генетические алгоритмы и оптимизация нескольких целей на PYTHON: библиотеки / инструменты для использования?

Python ищет файл для текста, используя ввод из другого файла

Правильно ли привязка параметров в библиотеке pymssql?

Развертывание Django на сервере OS 10.9

Persist Completed Pipeline в Луиджи Визуализатор

Есть ли способ скремблировать строки в python?

google-app-engine: Как я могу иметь список объектов как свойство в другом классе?

Python - лучший язык программирования в мире.