我想要这段代码,我可以有一个 csv 文件,其中一行电子邮件旁边有一排姓名,然后通过电子邮件发送列表中的每封电子邮件,但消息中包含每个姓名。
这是我的代码:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import csv
def nobrackets(current):
return str(current).replace('[','').replace(']','')
def noastrick(current):
return str(current).replace('\'','').replace('\'','')
email = 'xxxxxxxxxx'
password = 'xxxxxxxx'
send_to_email = []
subject = 'Whats up doc' # The subject line
message = ()
names = []
msg = MIMEMultipart()
msg['Subject'] = 'Whats up doc'
# Attach the message to the MIMEMultipart object
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
with open('Emails.csv','r') as csv_file:
csv_reader=csv.reader(csv_file)
for line in csv_reader:
names.append(line[0])
names_var = names
send_to_email.append(line[1])
send_to_email_var = send_to_email
message = (f"Hey {noastrick(nobrackets(names_var))} how has your day been?")
msg.attach(MIMEText(message, 'plain'))
msg['From'] = 'xxxxxxxxx'
msg['To'] = send_to_email_var
server.login(email, password)
text = msg.as_string() # You now need to convert the MIMEMultipart object to a string to send
server.sendmail(email, send_to_email_var, text)
names.clear()
message = ()
send_to_email = []
server.quit()
我得到的错误是 File/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/email/_policybase.py",第 369 行,在 _fold 中
parts.append(h.encode(linesep=self.linesep, maxlinelen=maxlinelen))
AttributeError:“列表”对象没有属性“编码”
我将列表更改为变量的原因是因为我认为这可能会修复我遇到的错误。我对 python 有点陌生,我意识到错误是在一个名为 _policybase.py 的文件中,它可能就像内置在我安装在计算机上的 python 应用程序中,但我不知道如何编辑该文件,或修复那个错误。