Я пытаюсь отправить электронное письмо из учетной записи Google, используя Python smtplib, но получаю сообщение об ошибке, и теперь я немного растерялся. Google отвечает на следующее: Please log in via your web browser and then try again. Learn more at https://support.google.com/mail/answer/78754
.
У учетной записи включена учетная запись с двумя факторами, поэтому я использую специальный пароль для своего входа. Насколько я понимаю, тогда это должно работать без включения настроек для менее безопасных приложений, не так ли? Я делал то же самое с другой учетной записью во время тестирования без проблем, но теперь я, наконец, получил учетные данные для правильной учетной записи и там не будет принимать аутентификацию.
Я знаю, что есть API Python Gmail, который можно использовать с OAuth, но если это вообще возможно, я не хочу включать больше пакетов и переписывать много, и я действительно не хочу включать "меньше" защищенные приложения ". Есть ли способ заставить это работать и без него?
Если это имеет значение, вот код, который я использую для отправки электронной почты. Как уже было сказано, это отлично работает с другим аккаунтом, поэтому я не уверен, действительно ли это актуально.
def send_mail(to_address, subject, body):
smtp_user = "[email protected]"
smtp_password = "MyAppPasswordFromGoogle"
server = "smtp.gmail.com"
port = 587
msg = MIMEMultipart("alternative")
msg["Subject"] = subject
msg["From"] = smtp_user
msg["To"] = to_address
msg.attach(MIMEText(body, "html"))
s = smtplib.SMTP(server, port)
s.connect(server, port)
s.ehlo()
s.starttls()
s.ehlo()
s.login(smtp_user, smtp_password)
s.sendmail(smtp_user, to_address, msg.as_string())
s.quit()
Изменить: Существует интересное различие между двумя учетными записями: на https://myaccount.google.com/lesssecureapps мой старый (рабочий) говорит: "Этот параметр недоступен для учетных записей которые активируют двухфакторную аутентификацию", в то время как новый говорит, что "этот параметр управляется вашим администратором домена", хотя оба используют 2FA, а также принудительно в обоих доменах. Поэтому я предполагаю, что есть некоторые настройки, которые администратор домена должен изменить, но я не знаю, какой из них был бы.