SMTPAuthenticationError; Имя пользователя и пароль не принимаются

Я слежу за этой книгой, и в главе 18 часть текущего задания включает отправив электронное письмо через Django. У меня есть годовой домен, который я использую для тестирования, и вместо того, чтобы платить дополнительные 5 долларов в месяц, я решил, что я просто буду пересылать электронные письма на существующий адрес, используя эти инструкции.

Затем я настроил его так, чтобы я мог отправлять почту с использованием псевдонима через Отправка почты из раздела адресов вашей переадресации

Однако я не могу заставить его работать, используя сгенерированный пароль приложения + псевдоним. Когда я пытаюсь отправить электронное письмо со страницы, оно работает только в том случае, если 2FA отключена и я использую свои фактические учетные данные Gmail, например:

EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'bobswife123'

Работает как задумано. Однако, допустим, я хотел использовать сгенерированный пароль приложения и псевдоним, например:

EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'bobsmistress123'

Тогда я получу следующую ошибку:

Ошибка SMTPAuthenticationError в / accounts / send_email

Не удалось использовать статью поддержки из URL-адреса на приведенном выше снимке экрана, но здесь это для удобства:

https://support.google.com/mail/?p=BadCredentials

В любом случае, это точные шаги, которые я предпринимаю:

Из терминала в macOS 10.13.1 я запускаю python manage.py runserver из терминала, а затем ввожу http://localhost:8000/ в Google Chrome. Страница отображается правильно. Я нажимаю ввод и пытаюсь отправить электронное письмо. Далее, это либо работает, либо я получаю снимок экрана, показанный выше. Вот пример трассировки:

http://dpaste.com/2DVFSPK

другие потенциально важные настройки:

EMAIL_HOST = 'smtp.gmail.com
EMAIL_PORT = 465
EMAIL_USE_SSL = True

Любая помощь приветствуется!

По поводу обвинения в дублировании:

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

Изменить: добавление моего ответа пользователю, спрашивающему, пробовал ли я шаги по устранению неполадок (tl; dr, да, я сделал):

  • Обновите свой почтовый клиент до последней версии.
    Не использовать для этого почтовый клиент; не применимо
  • Используйте пароль приложения. Если вы используете двухэтапную аутентификацию, попробуйте войти в систему с помощью пароля приложения.
    Мы уже рассмотрели этот вопрос выше; в чем моя проблема?
  • Разрешить менее безопасные приложения. Если вы не используете двухэтапную аутентификацию, вам может потребоваться разрешить менее безопасным приложениям доступ к вашей учетной записи.
    Разрешить менее безопасным приложениям уже включено. В остальном не работает
  • Если вы недавно изменили пароль Gmail, вам может потребоваться повторно ввести данные учетной записи Gmail или полностью повторить настройку учетной записи Gmail в другом почтовом клиенте.
    Не связано с моим паролем Gmail - работает, когда Я использую свои фактические учетные данные Gmail и могу войти в Gmail
  • Если приведенные выше советы не помогли, посетите https://www.google.com/accounts/DisplayUnlockCaptcha и следуйте инструкциям на странице.
    Уже пробовали
  • Возможно, метод входа в почтовый клиент небезопасен. Попробуйте войти прямо в приложении Gmail.
    Не думаю, что я смогу использовать приложение Gmail в сочетании с этим; не применимо

person kt-0    schedule 16.12.2017    source источник
comment
Вы пробовали шаги по устранению неполадок, перечисленные в этой справочной статье? Я почти уверен, что ваша проблема будет с одним из них - скорее всего, с менее безопасным приложением.   -  person solarissmoke    schedule 16.12.2017
comment
Возможный дубликат Django SMTPAuthenticationError   -  person solarissmoke    schedule 16.12.2017


Ответы (1)


Я столкнулся с той же проблемой: я заставил ее работать, используя разные email addresses для входа в систему и sendmail (т.е. войдите в систему с учетной записью gmail и паролем приложения, затем укажите перенаправленное письмо в качестве отправителя в sendmail).

Например:

smtpObj.login('[email protected]', 'bobsmistress123')
smtpObj.sendmail('[email protected]', receiver, emailString)
person Richard Shu    schedule 28.03.2020
comment
Не могу редактировать, потому что слишком мало символов, поэтому мне не разрешено. Но вы должны добавить новую строку, чтобы ваш код был правильно отформатирован :) - person totooooo; 28.03.2020