Когда я пытаюсь отправить электронное письмо через django, я замечаю, что объект электронной почты создан, и все поля (электронная почта, заголовок, тело) находятся в нем, но фактическое электронное письмо не отправляется. Когда я проверяю журналы сельдерея, я вижу следующее сообщение:
SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.
Learn more `at\n5.7.8 https://support.google.com/mail/?p=BadCredentials`
, но я на 100% уверен, что использую правильные учетные данные, и мой почтовый ящик не защищен двухфакторной аутентификацией
Код в
settings.py
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
EMAIL_PORT = 587
EMAIL_HOST_USER = '*******@gmail.com' # my email, I'm sure it's correct
EMAIL_HOST_PASSWORD = '********' # my password, I'm sure it's correct
Код в
views.py
( контактная форма, где я собираю необходимую информацию - электронная почта, название, тело)
class ContactUs(CreateView):
template_name = 'my_profile.html'
queryset = Contact.objects.all()
fields = ('email', 'title', 'body')
success_url = reverse_lazy('index')
def form_valid(self, form):
response = super().form_valid(form)
message = form.cleaned_data.get('body')
subject = form.cleaned_data.get('title')
email_from = form.cleaned_data.get('email')
recipient_list = [settings.EMAIL_HOST_USER, ]
send_email_async.delay(subject, message, email_from, recipient_list)
return response
Код в
tasks.py
(для сельдерея)
@shared_task()
def send_email_async(subject, message, email_from, recipient_list):
send_mail(subject, message, email_from, recipient_list, fail_silently=False)
но это не имеет значения, если это сельдерей или нет - электронная почта не отправляется сама, но я вижу объект этого письма в моем Postgres DB
Django версия 2.2.10