Attribute Error: List object does not have lstrip attribute when sending email with application

I attach the file from a specific path c: \ important \ log.txt

sender = ' poojagupta4112@gmail.com ' receiver = [' shubh4112@gmail.com '] message = """From: From Pooja Gupta < poojagupta4112@gmail.com > To: To Shubha Goel < shubh4112@gmail.com > Subject: SMTP e-mail test This is a test e-mail message. """ file_name = 'C:\important\log.txt' msg=MIMEMultipart() msg['From'] = sender msg['To'] = receiver msg['Subject'] = message msg['Date'] = email.Utils.formatdate(localtime=True) # build the attachment att = MIMEBase('application', 'base64') att.set_payload(open(file_name, 'rb').read()) email.Encoders.encode_base64(att) att.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file_name)) msg.attach(att) print 'successfully built attachment' try: session = smtplib.SMTP('smtp.gmail.com',587) print 'Starting..' session.ehlo() print 'ehlo executed..' session.starttls() print 'starttls done' session.login(sender,'snxzoumwhpybzvmo') print 'logged in' session.sendmail(sender,receiver,msg.as_string()) print 'sendmail executed..now quitting' session.close() except smtplib.SMTPRecipientsRefused: print 'Recipient refused' except smtplib.SMTPAuthenticationError: print 'Auth error' except smtplib.SMTPSenderRefused: print 'Sender refused' except smtplib.SMTPException: print('Error') 

It continues to give me the same error as the attribute attribute list object, does not have the lstrip attribute, the following error, stack trace:

 Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> execfile('C:\important\secret_file.pyw') File "C:\important\secret_file.pyw", line 45, in <module> session.sendmail(sender,receiver,msg.as_string()) File "C:\Python27\lib\email\message.py", line 137, in as_string g.flatten(self, unixfrom=unixfrom) File "C:\Python27\lib\email\generator.py", line 83, in flatten self._write(msg) File "C:\Python27\lib\email\generator.py", line 115, in _write self._write_headers(msg) File "C:\Python27\lib\email\generator.py", line 164, in _write_headers v, maxlinelen=self._maxheaderlen, header_name=h).encode() File "C:\Python27\lib\email\header.py", line 410, in encode value = self._encode_chunks(newchunks, maxlinelen) File "C:\Python27\lib\email\header.py", line 370, in _encode_chunks _max_append(chunks, s, maxlinelen, extra) File "C:\Python27\lib\email\quoprimime.py", line 97, in _max_append L.append(s.lstrip()) AttributeError: 'list' object has no attribute 'lstrip' 

Please, help.

+7
email-attachments attributeerror
source share
2 answers

it was a small mistake. The receiver parameter was a list type. either it should be converted to a string using the join method or if it is the only recipient and then pass it only as a string

+8
source share

receiver = [' shubh4112@gmail.com '] This is a list, but msg ['To'] expects a string and therefore an error.

You can use ','. join (receiver) and this should solve your problem.

+3
source share

All Articles