Getting "LazyImporter' object is not callable" error when trying to send email using python smtplib

Sum sjsumitj at gmail.com
Mon Mar 26 07:17:26 EDT 2018


Hi,

Getting "LazyImporter' object is not callable" error.
I have enabled allow less secure app setting in sender gmail.

Code :

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 at 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:465")
        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 at gmail.com"
    TEXT = "Hello everyone"
    SUBJECT = "Testing sending using gmail"

    send_email(to, SUBJECT, TEXT, attachment_file)


Getting below error :
File "test_mail.py", line 64, in send_email(to, SUBJECT, TEXT,
attachment_file) File "test_mail.py", line 24, in send_email
msg.attach(MIMEText(text)) TypeError: 'LazyImporter' object is not callable



More information about the Python-list mailing list