Python错误:';元组';对象没有属性';编码';

Python错误:';元组';对象没有属性';编码';,python,email,smtplib,Python,Email,Smtplib,我所做的是从网页中获取信息,并尝试将其以如下格式发送到电子邮件中: 名字:First\n#First是一个变量 Last Name:Last#Last是一个变量 下面是我的代码: import smtplib import base64 from email.MIMEMultipart import MIMEMultipart from email.mime.text import MIMEText msg = MIMEMultipart('relative') msg['Subject']

我所做的是从网页中获取信息,并尝试将其以如下格式发送到电子邮件中: 名字:First\n#First是一个变量 Last Name:Last#Last是一个变量

下面是我的代码:

import smtplib
import base64

from email.MIMEMultipart import MIMEMultipart
from email.mime.text import MIMEText

msg = MIMEMultipart('relative')
msg['Subject'] = 'Confirmation E-Mail'
msg['From'] = "none"
msg['To'] = email
text1 = "First Name: ", first_name, "<br>Last Name: ", last_name
part1 = MIMEText(text1, 'html')

s = smtplib.SMTP('localhost')
s.sendmail(email, email, msg.as_string())
s.quit()
导入smtplib
导入base64
从email.MIMEMultipart导入MIMEMultipart
从email.mime.text导入MIMEText
msg=MIMEMultipart('relative')
msg['Subject']=“确认电子邮件”
msg['From']=“无”
msg['To']=电子邮件
text1=“名字:”,名字,
姓氏:”,姓氏 part1=MIMEText(text1,'html') s=smtplib.SMTP('localhost') s、 sendmail(电子邮件、电子邮件、msg.as_string()) s、 退出

名字和姓氏将从网页中提取

您需要将第1部分附加到消息:

msg.attach(part1)

您还可以在

中找到如何发送多部分电子邮件的好例子,您需要将第1部分附加到msg:

msg.attach(part1)

您还可以在

MIMEText中找到一个很好的示例,说明如何发送多部分电子邮件,它将字符串作为第一个参数。您正在将text1创建为元组。你需要更像

"First Name: %s\nLast Name: %s" % (first_name, last_name)  

MIMEText将字符串作为其第一个参数。您正在将text1创建为元组。你需要更像

"First Name: %s\nLast Name: %s" % (first_name, last_name)  

虽然这个问题已经得到了回答,但我只想补充一句:您写的“其余错误”并不是其他错误。这里只有一个错误导致了回溯。您可以通过谷歌“python回溯”了解更多信息。当你得到一个回溯时,最好把整个事情从“回溯”一词开始一直贴到包含异常消息的最后一行。虽然问题已经得到了回答,但我要补充的是:你写的那行是“其余的错误”,而不是其他错误。这里只有一个错误导致了回溯。您可以通过谷歌“python回溯”了解更多信息。当您得到回溯时,最好将整个内容从“回溯”一词一直发布到包含异常消息的最后一行。值得注意的是,OP的原始代码是
text1=“First Name:,First\u Name,”\n last Name:,last\u Name
。这与
print
语句的功能相结合是可以理解的,该语句允许它接受多个参数并用空格将它们连接在一起。然而,这不是Python中通常连接字符串的方式。非常感谢。值得注意的是,OP的原始代码是
text1=“First Name:”,First\u Name,“\n last Name:”,last\u Name
。这与
print
语句的功能相结合是可以理解的,该语句允许它接受多个参数并用空格将它们连接在一起。然而,这不是Python中通常连接字符串的方式。非常感谢。