Smtplib无法从发送电子邮件邮件.ru

2024-05-18 09:40:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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()

如果我使用*@yandex.ru*@gmail.com或{}作为msg['From'],它就可以了。不要更改任何内容,只是假装电子邮件是从指定的地址发送的。但是如果我试图使用*@mail.ru(一些糟糕的电子邮件服务),我会得到smtplib异常,并出现以下错误:

^{pr2}$

如果没有更改授权凭证,为什么smtplib的行为会有所不同?在


Tags: topathfromcomexampleemailmyas