gpt4 book ai didi

python - 如何捕获 SMTPRecipientsRefused 异常(使用远程 SMTP 服务器和 django)?

转载 作者:行者123 更新时间:2023-11-28 19:27:11 32 4
gpt4 key购买 nike

我想了解它是如何工作的。

当我正常发送和发送电子邮件但收件人不存在或发生其他错误时,会发回一封电子邮件,其中包含有关错误和状态的信息。这可能需要一些时间。

我的问题是,如果这个响应需要时间,smtplib 如何捕获这个错误?当我使用 smtplib 发送电子邮件时,它永远不会引发 SMTPRecipientsRefused 异常。它只是发送电子邮件,后来,当故意使用无效的电子邮件地址时,我在回复电子邮件框中收到“发送到以下收件人永久失败:”错误。这对我没有帮助,因为我正在尝试从无效的电子邮件地址中清除我的电子邮件地址数据库。

有验证功能:

SMTP.verify(address)

但我不认为这是一个真正的选择。来自 python docs 的注释在 VRFY 上:
“许多站点禁用 SMTP VRFY 以阻止垃圾邮件发送者。”

关于我的测试环境的注释:我正在使用 django 和远程 SMTP 服务器 (gmail/apps)。
Q1:是不是抓不到错误的原因?我应该使用本地服务器吗?

问题 2: 除了从回复邮箱解析我的实际错误电子邮件外,还有其他方法可以做到这一点吗?

提前感谢您对此事的任何想法!

最佳答案

  1. 是的,这就是您没有获得异常的原因。使用本地服务器无济于事,因为您的本地服务器不知道给定的电子邮件地址是否有效。只有目标域的 MX 邮件服务器有任何线索,而且通常要等到很久以后才会主动告诉您。
  2. 不是真的。正如另一个答案所建议的那样,试试 Python 的 imaplib。或 poplib帮助您检索退回邮件。

不知道您的应用程序是什么,但如果您有关联网站,另一种选择是定期要求您的用户在登录时验证/更新他们的电子邮件地址。

关于python - 如何捕获 SMTPRecipientsRefused 异常(使用远程 SMTP 服务器和 django)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7362522/

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