No attribute 'SMTP', error when trying to send email in Python

Question:

I am trying to send an email in Python:

import smtplib


fromaddr = '......................'  
toaddrs  = '......................'  
msg = 'Spam email Test'  

username = '.......'  
password = '.......'

server = smtplib.SMTP('smtp.gmail.com', 587)  
server.ehlo()
server.starttls()
server.login(username, password)  
server.sendmail(fromaddr, toaddrs, msg)  
server.quit()

I understand that this is probably not the correct message format.

Anyways, I get an error:

C:.....>python email.py
Traceback (most recent call last):
  File "email.py", line 1, in <module>
    import smtplib
  File "C:.....Pythonlibsmtplib.py", line 47,
 in <module>
    import email.utils
  File "C:.....email.py", line 15, in
<module>
    server = smtplib.SMTP('smtp.gmail.com', 587)
AttributeError: 'module' object has no attribute 'SMTP'

I don’t quite understand what I am doing wrong here… Anything incorrect?

NOTE: All the periods are replacements for password/email/file paths/etc.

Asked By: Jacob Kudria

||

Answers:

Python already has an email module. Your script’s name is email.py, which is preventing smtplib from importing the built-in email module.

Rename your script to something other than email.py and the problem will go away.

Answered By: Blender
import smtplib
conn = smtplib.SMTP('imap.gmail.com',587)
conn.ehlo()
conn.starttls()
conn.login('[email protected]', 'your_password')

conn.sendmail('[email protected]','[email protected]','Subject: What you like? nn Reply Reply Reply')
conn.quit()
Answered By: Muneer Ahmad
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.