获得" 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'对象不可调用
答案 0 :(得分:1)
就像关于nope的@How所说,使用import语句导入的是MIMEText模块,而不是类。我可以从您的代码中重现错误。当我从email.mime.text导入时,错误消失。