Python:尝试通过email发送附件〜字符串错误?

时间:2017-05-09 14:17:32

标签: python python-2.7 mime smtplib

我正在尝试使用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()

任何人都有提示是什么问题?

1 个答案:

答案 0 :(得分:1)

您的代码很奇怪且不正确。您开始使用高级概念而不具备语言,smtp协议和电子邮件模块的基本知识。

您的代码中的

msg变量具有str类型。 str是一个纯字符串 - 一个字符列表。它没有方法.attach

我想你想使用类email.message的实例而不是字符串。此外,不需要使用全局变量。全局变量很糟糕,在你的情况下使用全局变量是完全没必要的。