作者:那朵逆风的蔷薇_708 | 来源:互联网 | 2024-11-03 18:27
本文探讨了SMTPAUTH扩展的问题及其在Python中的应用解决方案。通过分析SMTP协议的安全性不足,提出了使用SMTPAUTH扩展来增强邮件传输的安全性。文章详细介绍了SMTPAUTH的工作原理,并结合Python编程语言,提供了一种实现SMTPAUTH认证的方法。此外,还讨论了常见的实现问题及解决策略,为开发者提供了实用的参考。
您收到的错误意味着正在与之交谈的SMTP服务器不声称支持身份验证。如果您查看调试输出,将会发现对的响应均不EHLO
包含的必要声明AUTH
。如果它(正确地)支持身份验证,则响应之一将是:
250 AUTH GSSAPI DIGEST-MD5 PLAIN
(至少是EHLO
对STARTTLS
。之后的响应。)由于未包含该响应,因此smtplib假定服务器将无法处理该AUTH
命令,并将拒绝发送该命令。如果确定SMTP服务器AUTH
即使不发布该命令也支持该命令,则可以通过将SMTP服务器显式添加到功能集中来 暗中说服smtplib支持该命令AUTH
。您需要知道支持哪种身份验证方案,然后可以执行以下操作:
smtp.starttls()
smtp.ehlo()
# Pretend the SMTP server supports some forms of authentication.
smtp.esmtp_features['auth'] = 'LOGIN DIGEST-MD5 PLAIN'
…但是当然要使SMTP服务器按照规范运行是一个更好的主意:)