我正在尝试使用python通过电子邮件发送附件,但我收到此错误:
msg.attach(msgImage) AttributeError:'str'对象没有属性'attach'
以下是代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.mime.image import MIMEImage
def send_email():
fromaddr = 'testevpsa1@gmail.com'
toaddrs = 'Toemail'
global msg
subject = 'RESPOSTA'
message = 'Subject: %s\n\n%s' % (subject, msg)
username = 'testevpsa1@gmail.com'
password = 'xxxxxxxx'
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
fp = open ('C:\Python27\Scripts\pares.txt', 'rb')
msgImage = MIMEImage (fp.read(), _subtype='txt')
fp.close()
msg.attach(msgImage)
server.sendmail(fromaddr, toaddrs, message, msg.as_string())
server.quit()
msg = 'Email test, please, see the attachments'
send_email()
任何人都有提示是什么问题?
答案 0 :(得分:1)
您的代码很奇怪且不正确。您开始使用高级概念而不具备语言,smtp协议和电子邮件模块的基本知识。
您的代码中的 msg
变量具有str
类型。 str
是一个纯字符串 - 一个字符列表。它没有方法.attach
。
我想你想使用类email.message
的实例而不是字符串。此外,不需要使用全局变量。全局变量很糟糕,在你的情况下使用全局变量是完全没必要的。