smptlib не отправляется письмо с mail.ru

Рейтинг: 0Ответов: 1Опубликовано: 11.02.2023

Не отправляется письмо, при этом ошибки никакой нет, программа продолжается работать, но ничего не происходит. Еще зависает когда пытаешься ее остановить. Кусок кода:

msg = MIMEMultipart()
msg['From'] = cfg.USER
msg['To'] = message.text
msg['Subject'] = "Привет от питона"

body = "Это пробное сообщение"
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP(cfg.SERVER, cfg.PORT)
server.starttls()
server.login(cfg.USER, cfg.PASSWORD)
text = msg.as_string()
server.sendmail(cfg.USER, message.text, text)
server.quit()

В самом мэил ру включил Imap, получил пароль для внешних приложений (он и используется). Порт стоит 465. Я знаю, что smtplib не очень дружит с мэйлом, что адрес есть и хочется его использовать

UPD: спустя некоторое время вылетает ошибка:

smtplib.SMTPServerDisconnected: Connection unexpectedly closed

UPD 2: Попробовал поменять соединение на SSL, поставил порт 25, как рекомендуется в одном гайде. Теперь ошибка:

ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:992)

Ответы

▲ 0

Попробуйте использовать 587 порт, через него я успешно отправил письмо на mail почту, или заменить строку с SMTP_SSL на

server = smtplib.SMTP_SSL('smtp.mail.ru', 465)

Если это не работает советую использовать библиотеку social-spam.