Python新手,GMail SMTP错误

eat*_*hil 15 python gmail smtp smtplib

我正在给自己写一个简单的sendmail函数,我一直收到这个错误:

NameError:未定义名称"SMTPException"

我的代码出了什么问题?有什么建议?

import smtplib

sender = "user@gmail.com"
receiver = ["user@gmail.com"]
message = "Hello!"

try:
    session = smptlib.SMTP('smtp.gmail.com',587)
    session.ehlo()
    session.starttls()
    session.ehlo()
    session.login(sender,'password')
    session.sendmail(sender,receiver,message)
    session.quit()
except SMTPException:
    print('Error')
Run Code Online (Sandbox Code Playgroud)

Gre*_*ill 30

在Python中,您需要通过在其名称前面添加名称来完全限定名称:

except smtplib.SMTPException:
Run Code Online (Sandbox Code Playgroud)

除非您专门导入非限定名称,否则这是正确的(但我不建议您为您的程序执行此操作,只显示可能的内容):

from smtplib import SMTPException
Run Code Online (Sandbox Code Playgroud)

  • 不用担心,即使使用SMTP工作了20年,我仍然这样做. (5认同)