使用 Python 和 smtplib 在电子邮件正文中显示列表内容
Displaying contents of list in body of email with Python and smtplib
我想遍历列表并在我的电子邮件中将每个项目显示在单独的行中。
如果我设置 body = "Just a string"
,代码工作正常
mylist = [first line,second line,third line,fourth line]
fromaddr = "EMAIL"
toaddr = "EMAIL"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "EMAIL SUBJECT"
body = mylist
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("EMAIL", "PASSWORD")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
我试着将 body = 添加到我的列表中,只是为了看看它当前的样子,但我收到以下错误:_text.encode('us-ascii')
AttributeError: 'list' 对象没有属性 'encode'
我最终想要的是电子邮件的正文看起来是这样的(当我收到电子邮件时):
第一行
第二行
第三行
第四行
感谢 Michael Butscher 在正确方向上的推动。
这样就可以了。
body = "\r\n".join(mylist)
我想遍历列表并在我的电子邮件中将每个项目显示在单独的行中。
如果我设置 body = "Just a string"
,代码工作正常mylist = [first line,second line,third line,fourth line]
fromaddr = "EMAIL"
toaddr = "EMAIL"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "EMAIL SUBJECT"
body = mylist
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("EMAIL", "PASSWORD")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
我试着将 body = 添加到我的列表中,只是为了看看它当前的样子,但我收到以下错误:_text.encode('us-ascii')
AttributeError: 'list' 对象没有属性 'encode'
我最终想要的是电子邮件的正文看起来是这样的(当我收到电子邮件时):
第一行
第二行
第三行
第四行
感谢 Michael Butscher 在正确方向上的推动。
这样就可以了。
body = "\r\n".join(mylist)