发送电子邮件时出错Python:';ascii';编解码器可以';t编码字符'\xe9';位置87:序号不在范围内(128)

发送电子邮件时出错Python:';ascii';编解码器可以';t编码字符'\xe9';位置87:序号不在范围内(128),python,python-3.x,email,Python,Python 3.x,Email,我试图发送一封带有txt文件文本的电子邮件,文本只是几行文本。运行这些时得到的输出是'ascii'编解码器无法对位置87处的字符'\xe9'进行编码:序号不在范围(128) 类似的基本问题是,SMTP要求UTF-8正确标记并封装在MIME结构中,而不仅仅是逐字复制。我添加了一个副本,展示了如何正确操作。简而言之,使用电子邮件库编写有效的MIME消息。 bodyFloat = ("") for differentNews in fileOpen: bodyFloat = bodyFloat

我试图发送一封带有txt文件文本的电子邮件,文本只是几行文本。运行这些时得到的输出是
'ascii'编解码器无法对位置87处的字符'\xe9'进行编码:序号不在范围(128)


类似的基本问题是,SMTP要求UTF-8正确标记并封装在MIME结构中,而不仅仅是逐字复制。我添加了一个副本,展示了如何正确操作。简而言之,使用
电子邮件
库编写有效的MIME消息。
bodyFloat = ("")
for differentNews in fileOpen:
    bodyFloat = bodyFloat + differentNews
    bodyFloat = bodyFloat + "\n"

sender = "sender@gmail.com"
reciver = ["reciver@gmail.com"]
password = "password"
body = str(bodyFloat)
print(body)
subject = "The daily news"


with smtplib.SMTP('smtp.gmail.com', 587) as mail:

    mail.ehlo()
    mail.starttls()
    mail.ehlo()
    mail.login(sender, password)

    message = f'Subject: {subject}\n\n{body}'
    mail.sendmail(sender, reciver,message)