Рубрики
Без рубрики

Как django Mail Debug с MailDev W / Docker на четыре шага.

Это вторая рассрочка исследования администратора Django. Три человека понравилось, что дало мне … Теги с Джанго, Питоном, начинающим, учебником.

Это вторая рассрочка исследования администратора Django. Три человека понравилось, что дало мне мужество. Если это вообще поможет, я мотивирован.

При развитии Django есть много спроса на отправку электронной почты. Как вы отлаживаете свои электронные письма?

Я часто использую программное обеспечение с открытым исходным кодом под названием Maildev Отказ Это позволяет вам увидеть, что отправляется по почте. Это требует некоторого привыкания, но я думаю, что это относительно легко настроить.

О maildev.

Официальный сайт имеет следующее объяснение.

MailDev is a simple way to test your project's generated emails
during development with an easy to use web interface
that runs on your machine built on top of Node.js.

Это то, что я имею в виду. Действительно, это просто и легко в использовании, как говорит это утверждение.

Шаг 1

Во-первых, давайте настроим django. Это очень легко сделать.

Добавьте два элемента на Settings.py

if Debug:
    ## This is important.
    EMAIL_HOST = 'maildev' 

    ## writing this just in case.
    EMAIL_PORT = 25

Давайте добавим выше два пункта на settings.py. Одна вещь, которую вы должны обратить особое внимание, это Email_host Отказ Имя хоста должно быть «MailDev». Причина этого состоит в том, что я установил имя докера на Maildev Как вы увидите в следующем разделе.

Email_backend.

Следующим шагом является настройка электронной почты. Если вы установили его для вывода содержимого электронной почты на консоль, он не будет работать должным образом, поэтому нужно сбросить его к настройке по умолчанию. Причина в том, что она должна быть отправлена через SMTP. поэтому мы должны использовать django.core.mail.buageends.smtp. Emailbackend Отказ

## comment out if you use `backends.console`.
# EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

По умолчанию django.core.mail.buageends.smtp. Emailbackend будет называться. django.core.mail.buageends.smtp. Emailbackend.

Шаг 2

Подготовка докера.

В моем случае я использовал Docker-Compose Для этого, но, пожалуйста, прочитайте соответственно. Конечно, вы также можете использовать команды Docker, чтобы запустить ее, и даже если у вас нет Docker Environment, вы можете установить и использовать ее с помощью команды NPM. Для получения дополнительной информации, пожалуйста, посмотрите на Официальный документ здесь Отказ

Добавьте этот код в Docker-Compose.yaml (.yml)

maildev:
    image: maildev/maildev
    ports:
        - "49180:80"

Памятка

0 - 1023 Известные порты (системный порт) 1024 - 49151 => Присвоенные порты (порт пользователя). 49152-65535 => Динамические и/или частные порты.

По словам IANA Документация Отказ

Если номер порта покрыт другими приложениями, может возникнуть столкновение и вызывает проблемы. В прошлом у меня были проблемы, потому что я не понимал, что номер порта базы данных работает в Контейнер докеров Потенд с номером порта базы данных, работающих в местная среда . Итак, используйте это 49152-65535 имеет динамические и/или частные порты, когда это возможно.

Шаг 3

Отправка электронной почты

Попробуем отправить электронную почту из своего приложения Django. Есть много возможных способов отправить сообщение электронной почты, но мы будем использовать send_mail Функция в django.core.mail. или конструктор EmailMessage класс в django.core.mail. и Отправить Способ отправить электронное письмо.

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

from django.core.mail import send_mail
send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com'],
    fail_silently=False,
)

Шаг4

Доступ Maildev.

Как только электронное письмо отправлено, пожалуйста, доступа к http://localhost: 49180/ Когда открыта панель MailDev. Вам нужно будет обратить внимание на номер порта.

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

Законченный

Спасибо за чтение этого далеко. Если у вас есть какие-либо предложения, комментарии или отзывы, пожалуйста, не стесняйтесь добраться до меня. Я надеюсь взаимодействовать с инженерами со всего мира.

использованная литература

Почтовый трафик между контейнером Maildev и контейнером Django обеспечивает подключение Errno 111 отказался

Оригинал: “https://dev.to/takahisahayashi/django-mail-debug-with-maildev-w-docker-for-four-steps-29m7”