命名問題:module 'yagmail' has no attribute 'SMTP'

咱們在命名文件名的時候,應該避免跟系統包名字重合。
轉載自:https://stackoverflow.com/questions/16512256/no-attribute-smtp-error-when-trying-to-send-email-in-python

I am trying to send an email in Python:html

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.python

Anyways, I get an error:app

C:\.....>python email.py
Traceback (most recent call last):
  File "email.py", line 1, in <module>
    import smtplib
  File "C:\.....\Python\lib\smtplib.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?dom

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

1 Answer

up vote 48down voteaccepted

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

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

  • 8
    Also, remember to (re)move the pyc file. – RandomInsano Dec 30 '13 at 21:18
相關文章
相關標籤/搜索