gpt4 book ai didi

python - 如何捕获 Python 的 SMTPlib 中的连接超时错误?

转载 作者:行者123 更新时间:2023-11-28 21:30:25 24 4
gpt4 key购买 nike

抛出的错误是:

error: [Errno 110] Connection timed out

我不知道除了什么?

    try:
smtpObj = smtplib.SMTP('smtp.example.com')
smtpObj.starttls()
smtpObj.login('user','pass')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except smtplib.SMTPException('Error: unable to send email"'):
pass
except smtplib.socket.error ('Error: could not connect to server'):
pass

谢谢。

最佳答案

您需要提供异常类,而不是其实例。也就是说,代码应该是这样的

try:
smtpObj = smtplib.SMTP('smtp.example.com')
smtpObj.starttls()
smtpObj.login('user','pass')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except smtplib.SMTPException: # Didn't make an instance.
pass
except smtplib.socket.error:
pass

第二个异常,smtplib.socket.error,似乎是捕获该错误的适用方法。通常直接从socket模块import socket访问,socket.error

请注意,我说这就是代码“应该”的样子,这有点夸张。使用 try/ except 时,您希望在 try block 中包含尽可能少的代码,特别是当您捕获相当普遍的错误时,例如socket.error

关于python - 如何捕获 Python 的 SMTPlib 中的连接超时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com