【发布时间】:2022-01-21 16:29:15
【问题描述】:
我正在编写一个代码,将电子邮件从 .xlsx 文件发送到邮件列表。
我希望从单独的 .html 文件导入电子邮件正文,但是当它到达第 47 行时出现编码错误 (htmlPart = MIMEText(f, 'html'))
'_io.TextIOWrapper' 对象没有属性'encode'
这是我的代码:
from email.message import Message
import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
your_email = "XXXXX"
your_password = "XXXXX"
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(your_email, your_password)
message = MIMEMultipart("alternative")
email_list = pd.read_excel(r"C:\\Users\\fernando.martinez\\Desktop\\MAILS2.xlsx")
names = email_list['Name']
emails = email_list['Mail']
for i in range(len(emails)):
name = names[i]
email = emails[i]
message = MIMEMultipart("alternative")
message['From'] = your_email
message['To'] = email
message['Subject'] = "SUBJECT HERE"
with open('emails.html', 'r') as f:
html_string = [line.rstrip('\n') for line in f]
htmlPart = MIMEText(f, 'html')
message.attach(htmlPart)
server.send_message(message)
server.close()
【问题讨论】:
-
请提供完整的追溯信息,说明您的代码(或导入的模块)中的哪一行触发了此错误。
-
到达第47行时触发错误:htmlPart = MIMEText(f, 'html')
标签: python html pandas email encode