我想通过python脚本从我的gmail acocunt发送电子邮件。
而且我的代码有效。
唯一的是我希望电子邮件具有主题和正文。
但是我的脚本将所有内容都放在了主题中。
这是我的代码:
import smtplib
with smtplib.SMTP("smtp.gmail.com", 587) as smtp:
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login("MY EMAIL", "MY PASSWORD")
subject = "Contract Details"
body = "Grettings. Here are the contract details. Thank you."
msg = f"""Subject: {subject}\n\n{body}"""
email = "MY EMAIL"
def encode(x):
""" The replaces in this function fix some problems in the encoding.
For now, they are not that relevant. They work. """
return str(x.encode("ascii", errors="ignore")).replace("b'", "").replace("'", "")
# I'm sending it to myself, so the first two arguments are the same:
smtp.sendmail(encode(email), encode(email), encode(msg))
我试图在线解决问题,很多视频和文章都说您应该使用两条换行符将主题与正文分开。
这就是为什么我使用msg = f"""Subject: {subject}\n\n{body}"""
您可以看到我的主体和主体都在主体(红色)中,主体为空白。
我也没有尝试过任何断裂线,一条断裂线,三根断裂线。
我什至尝试写msg = f"""Subject: {subject}\n\nBody: {body}"""
但是什么都行不通...
我如何将主体与主体分开?
答案 0 :(得分:0)
好,所以我更改了:
smtp.sendmail(encode(email), encode(email), encode(msg))
收件人:
smtp.sendmail(encode(email), encode(email), msg)
现在可以使用了。