Как отправить письмо на почту с помощью Python?
Подскажите, понадобилось на python отправлять сообщение на почту yandex.
Нашел код, но вылетает ошибка.
Почитал, написано что ошибка может вылетать, так как пароль может быть не в кодировке utf-8.
Пишу в коде для password, addr_from, addr_to это: encode(encoding='utf-8') - ноль эмоций.
Подскажите, как тогда исправить ошибку?
import smtplib # Импортируем библиотеку по работе с SMTP
# Добавляем необходимые подклассы - MIME-типы
from email.mime.multipart import MIMEMultipart # Многокомпонентный объект
from email.mime.text import MIMEText # Текст/HTML
addr_from = "[email protected]"
addr_to = "[email protected]"
password = "s3n@MSgFr0m@$" # пароль от почты [email protected]
msg = MIMEMultipart() # Создаем сообщение
msg['From'] = addr_from # Адресат
msg['To'] = addr_to # Получатель
msg['Subject'] = 'Тема сообщения' # Тема сообщения
body = "Текст сообщения"
msg.attach(MIMEText(body, 'plain')) # Добавляем в сообщение текст
server = smtplib.SMTP_SSL('smtp.yandex.ru', 465) # Создаем объект SMTP
# server.starttls() # Начинаем шифрованный обмен по TLS
server.login(addr_from, password) # Получаем доступ
server.send_message(msg) # Отправляем сообщение
server.quit() # Выходим
Ошибка:
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Error: authentication failed: This user does not have access rights to this service')
Ответы (2 шт):
Была такая же проблема, тут ответ - https://searchengines.guru/ru/forum/1037543.
Настроить ящик нужно:
перепробовал всякое, решение оказалось не очевидным - помогла простановка галок в настройках ящика, с которого осуществляется отправление: Почта->все настройки->почтовые программы
разрешить доступ к почтовому ящику с помощью почтовых клиентов, раздел imap, я на всякий поставил там все галки в том числе в разделе pop3
Только что была идентичная ошибка с почтовым акком на yandex для локального гитлаба. Исходя из гугления, обычно связана с использованием фичи, отключенной в настройках yandex аккаунта.
В моём случае помогло включить опцию «Портальный пароль».
Путь к опции:
- Нажать на иконку шестерёнки в правом верхнем углу
- В выпадающем меню: «Прочие»
- На новой странице в списке слева выбрать «Почтовые программы»
- Поставить галочку на чекбоксе «Портальный пароль»

