Отправляйте электронные письма с помощью Django и SMTP Google

#django #smtp

#django #smtp

Вопрос:

Мне нужно использовать SMTP-почтовый сервер Google, чтобы мой сервер отправлял электронные письма x получателям. Но почта никогда не доходит до предполагаемого получателя. Я активировал незащищенные приложения в своей учетной записи gmail и настроил следующее:

В Gmail я перехожу в раздел «Управление учетной записью GMAIL» -> «Безопасность» и активирую 2-шаговую проверку. Затем в разделе «Управление учетной записью GMAIL» -> «Безопасность» -> «Пароль приложения» при выборе приложения я выбираю «Другое (пользовательское имя)» и добавляю имя для приложения, и оно генерирует пароль из 16-значных символов.

Теперь код Django выглядит следующим образом:

 from django.conf import settings
from django.core.mail import EmailMultiAlternatives


EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'xxxxxxxxx@gmail.com'
EMAIL_HOST_PASSWORD = 'xxxx xxxx xxxx xxxx' #contrasena de 16 digitos
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'default from email'

def send_user_mail(randomNumber):
    subject = 'Titulo del correo'

    message = EmailMultiAlternatives(subject, #Titulo
                                    "Su número es: " str(randomNumber),
                                    'xxxxx@gmail.com', #Remitente
                                    to=['xxxx@gmail.com']) #Destinatario

    message.send() 
 

в settings.py Я добавил:

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

Я что-то забыл или делаю что-то не так? Заранее спасибо.

Комментарии:

1. Почта никому не будет отправлена. Он будет печататься в консоли, поскольку вы используете console.EmailBackend . Измените его на smtp.EmailBackend или обратитесь к этому docs.djangoproject.com/en/3.1/topics/email и решите, что использовать. Также вам необходимо включить опцию Разрешить менее безопасные приложения в вашем gmail.

2. Спасибо. Это помогает мне