获取" LazyImporter对象不可调用"尝试使用python smtplib

时间:2018-03-26 10:15:28

标签: python-2.7 smtplib

获得" LazyImporter'对象不可调用"尝试发送电子邮件时出错  附件使用来自gmail的python smtplib。 我已在发件人Gmail中启用了较少的安全应用设置

代码:

import smtplib
from email import MIMEBase
from email import MIMEText
from email.mime.multipart import MIMEMultipart
from email import Encoders
import os

def send_email(to, subject, text, filenames):
    try:
        gmail_user = 'xx@gmail.com'
        gmail_pwd = 'xxxx'

        msg = MIMEMultipart()
        msg['From'] = gmail_user 
        msg['To'] = ", ".join(to)
        msg['Subject'] = subject

        msg.attach(MIMEText(text))

        for file in filenames:
            part = MIMEBase('application', 'octet-stream')
            part.set_payload(open(file, 'rb').read())
            Encoders.encode_base64(part)
            part.add_header('Content-Disposition', 'attachment; filename="%s"'% os.path.basename(file))
            msg.attach(part)

        mailServer = smtplib.SMTP("smtp.gmail.com:587") #465,587
        mailServer.ehlo()
        mailServer.starttls()
        mailServer.ehlo()
        mailServer.login(gmail_user, gmail_pwd)
        mailServer.sendmail(gmail_user, to, msg.as_string())
        mailServer.close()
        print('successfully sent the mail')

    except smtplib.SMTPException,error::

        print str(error)


if __name__ == '__main__':
    attachment_file = ['t1.txt','t2.csv']
    to = "xxxxxx@gmail.com" 
    TEXT = "Hello everyone"
    SUBJECT = "Testing sending using gmail"

    send_email(to, SUBJECT, TEXT, attachment_file)

错误:文件" test_mail.py",第64行,in     send_email(to,SUBJECT,TEXT,attachment_file)    在send_email中输入文件" test_mail.py",第24行     msg.attach(MimeText用于(文本)) TypeError:' LazyImporter'对象不可调用

1 个答案:

答案 0 :(得分:1)

就像关于nope的@How所说,使用import语句导入的是MIMEText模块,而不是类。我可以从您的代码中重现错误。当我从email.mime.text导入时,错误消失。