Python 新手,GMail SMTP 错误

2022-01-23 00:00:00 python smtp smtplib gmail

问题描述

我正在为自己编写一个简单的 sendmail 函数,但我不断收到此错误:

I am writing a simple sendmail function to myself and I keep getting this error:

NameError: 名称SMTPException"未定义

NameError: name 'SMTPException' is not defined

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

What is wrong with my code? Any suggestions?

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')


解决方案

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

In Python, you will need to fully qualify the name by prefixing it with its module:

except smtplib.SMTPException:

这是真的,除非您专门导入非限定名称(但我不建议您为您的程序这样做,只是显示可能的情况):

This is true unless you specifically import the unqualified name (but I wouldn't recommend doing this for your program, just showing what's possible):

from smtplib import SMTPException

相关文章