smtplib 没有发送电子邮件,也没有出现错误

时间:2021-03-22 18:39:26

标签: python smtplib

我正在尝试通过 smtplib 服务器发送消息:

msg = EmailMessage()
msg['Subject'] = 'Product in Stock Alert'
msg['From'] = 'sender'
msg['To'] = 'reciever'
msg.set_content("Hey, {} is now available in stock\n"
                "Check it out soon : {}".format('hamza', 'google.com'))
with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()
    smtp.login('gmail', 'code')
    smtp.sendmail('sender', 'reciever' ,msg)

我通过 cmd 运行它,但没有出现或发生任何事情,我在我的 Gmail 帐户中打开了 lesssecureapps 并关闭了两步验证。 提前致谢

1 个答案:

答案 0 :(得分:1)

.as_string() 方法添加到 msg:

smtp.sendmail('sender', 'reciever', msg.as_string())

因此,代码应如下所示:

msg = EmailMessage()
msg['Subject'] = 'Product in Stock Alert'
msg['From'] = 'sender'
msg['To'] = 'reciever'
msg.set_content("Hey, {} is now available in stock\n"
                "Check it out soon : {}".format('hamza', 'google.com'))
with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()
    smtp.login('gmail', 'code')
    smtp.sendmail('sender', 'reciever', msg.as_string())