smtplib не отпраляет письмо от *@mail.ru
Я пытаюсь использовать smtplib для отправки сообщений при помощи вот этого кода:
file = "path_to_a_file"
part = MIMEBase('application', "octet-stream")
part.set_payload(open(file, "rb").read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file_book))
msg = MIMEMultipart()
msg['From'] = from_email@example.com
msg['To'] = to_email@example.com
msg.attach(part)
smtp = SMTP_SSL()
smtp.connect('smtp.yandex.ru')
smtp.ehlo()
smtp.login('my_email@yandex.ru', 'pass')
try:
smtp.sendmail('my_email@yandex.ru', 'to_email@example.com', msg.as_string())
except SMTPException as e:
print("Error: unable to send email: "+str(e))
smtp.quit()
Если в поле в msg['From'] указывать *@yandex.ru или *@gmail.com или *@my_domain.info всё раотает прекрасно. Не меняя ничего больше, просто в теле письма меняю адрес From. Но при попытке отправить с *@mail.ru я получаю вот эту ошибку:
(554, b'5.7.0 Failed to authorize the sender 1505621397-z6HZZunef2-9ulCCxTQ 1505621397-ZhCGNIKkSZ-9uPOg8fd')
Изначально хотел спросить почему smtplib ведёт себя по-иному, если авторизационные данные не меняются, но потом в обсуждениях здесь натолкнулся, что это же ответ сервера, значит smtplib тут уже не причём, а я неправильно составляю запрос? Как же быть тогда, чтобы отправлять письмо указывая в теле From: something@mail.ru?