Как правильно настроить Gmail для отправки электронной почты с помощью Django. Официальная конфигурация не работает для меня

Я готовлю онлайн-портфолио, сделанное на Django, и одной из функций является форма, с помощью которой вы можете связаться со мной по E-mail. Чтобы убедиться, что эта функциональность работает правильно, я тестировал ее с MailTrap и она отлично работает, теперь для производственной версии я хочу, чтобы письма попадали на мою почту Gmail, но несмотря на то, что в теории я выполнил все шаги, у меня ничего не получилось, это сработало только с MailTrap

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

Вот конфигурация моего Settings.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = "smtp.gmail.com"
EMAIL_HOST_USER = "my-e-mail@gmail.com"
EMAIL_HOST_PASSWORD = 'smbumqjiurmqrywn'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

Этот пароль - просто пример, он просто показывает, как он устанавливается.

А это метод для отправки E-mail. Я использую EmailMessage, но с send_mail результат тот же:

def contact(request):
contact_form = ContactForm()

if request.method == 'POST':
    contact_form = ContactForm(data = request.POST)

    if contact_form.is_valid():
        name = request.POST.get('name', '')
        email = request.POST.get('email', '')
        content = request.POST.get('content', '')

        # Send E-mail.
        email = EmailMessage(
            'New message from {} <{}>'.format(name, email),
            'From {} <{}>\n\nWrote:\n\n{}'.format(name, email, content),
            email,
            [settings.EMAIL_HOST],
            reply_to = [email]
        )

        try:
            # E-mail OK.
            email.send()

            return redirect(reverse('contact') + '?OK')
        except:
            # E-mail FAIL.
            return redirect(reverse('contact') + '?FAIL')

return render(request, 'core/contact.html', {'form' : contact_form})

Как я уже сказал, если я изменю учетные данные в Settings.py на MailTrap, он работает без изменения чего-либо еще, но Gmail не работает, и я не знаю, в чем может быть проблема.

В конце метода я поместил email.send() в попытку, чтобы легче было понять, когда это не удалось, а когда нет, с конфигурацией Gmail он всегда вводит except.

Я несколько раз заходил в раздел, где создаются специальные пароли в моем аккаунте Gmail после попытки отправить E-mail и часть, где написано "Последнее использование" пуста, я не знаю, связано ли это с проблемой.

Вернуться на верх