我正在尝试使用smtplib在python 2.7中发送邮件。下面的代码非常简单:
import smtplib
def main(argv=None):
sender = 'abc@gmail.com'
receivers = ['xyz@gmail.com']
message = """
This is a test e-mail message.
"""
smtpObj = smtplib.SMTP('xyz@gmail.com',25)
smtpObj.login('abc', 'pwd')
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
if __name__ == '__main__':
main()
现在当我执行下面的代码时,我不断得到这个异常:
smtplib.SMTPAuthenticationError: (535, '5.7.3 Authentication unsuccessful').
谷歌已于2022年5月30日删除此功能。
为了帮助确保您的帐户安全,从2022年5月30日起,Google不再支持使用第三方应用程序或设备,这些应用程序或设备要求您仅使用您的用户名和密码登录您的Google帐户。
重要提示:此截止日期不适用于Google Workspace或Google Cloud Id实体客户。这些客户的执行日期将稍后在Workspace博客上公布。
为了完整回答这个问题,我已经多次遇到完全相同的错误——每次都是出于不同的原因。这条错误信息一直困扰着我,我有点变成了这条错误信息的自称专家。这里列出了我面临的所有问题以及我是如何解决它的。
>
需要在 Google 管理员中启用“安全性较低的应用”(https://admin.google.com/ac/security/lsa)
即使启用了上述设置,如果您的电子邮件中有双重验证设置,服务也可能会失败。解决方案是创建一个应用程序特定的密码(https://myaccount.google.com/u/5/apppasswords),该密码必须用作Python中smtplb的密码。
如果你第一次用一个未知的IP这样做。可能有一个秘密的验证码启动认证。你可能会看到一个534错误代码,而不是535,但我不能保证。您需要首先点击一个链接来清除验证码(https://accounts . Google . com/DisplayUnlockCaptcha)。你可能需要等待10分钟,它才真正注册它。所以去喝杯咖啡吧。
最后,如果您没有打开正确的端口,您将收到相同的错误消息。我在防火墙中没有打开端口587。我启用了smtp和smtps作为服务,但默认情况下它们只覆盖端口25和465。因此,如果您使用587,请确保它是打开的,例如对于防火墙,sudo firewall cmd--permanent--add port=587/tcp,然后重新启动防火墙服务。
最后,如果您没有在服务器上正确设置SSL,此邮件仍然会失败。在某个时候,我收到了错误消息,在一些日志中进一步调查后,我发现它未能进行握手。
最后更新:我的代码中的ehlo()不小心出现在错误的位置,突然开始抛出535身份验证错误,即:
会话 = smtplib。SMTP('smtp.gmail.com', 587)
session . starttls()session . log in(发件人地址,发件人通行证)
session.ehlo(“yourdomain.com”) #
实际上,当我尝试在python控制台上执行相同的语句时,我知道密码不正确,这是由于不同的字符编码。
对于所有其他用户,请避免复制粘贴
我们的项目包括一个JavaFX应用程序,它通过RMI协议调用JEE服务器。我们使用Payara应用服务器,一个Glassfish分叉。我们想使用带有数据库的JAAS来管理授权给用户的身份验证和权限。 我们不了解如何将创建的JDBC领域与我们的应用程序绑定以与数据库交互。 我们可以像这里一样以编程方式调用领域或直接查询数据库吗? 启动LoginContext的服务: 登录模块: CallBackHa
问题内容: 我正在尝试通过FTP SITE代理访问FTP服务器以绕过防火墙,因为我知道我的用户名/密码正确,因为可以使用FileZilla进行连接。我尝试使用,但没有用。码: 给我这个错误: 我尝试过的事情: 使用备用构造函数。 拆下 使用just ,不使用FTPProxyConnector 设置连接器之前进行身份验证,反之亦然。 但是,当我仅使用Authenticator时,会收到不同的错误提示
身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工
我有一个问题,通过mongo shell连接到MongoDB地图集,即使我已经做了一切正确的和三重检查数据用户名和密码,包括我的IP在白名单中,更改库名测试,并尝试在同一行中添加-密码 `$mongo“mongodbsrv://cluster******.mongodb。net/test”--用户名admin--密码admin MongoDB shell v4.4.6版连接到:mongodb://
Tweepy API请求twitter return me Twitter错误响应:状态代码=401。 这是我的实际代码: 我曾试图用tweepy软件包删除推文,并获得了所有必需的密钥。镊子包装不起作用吗?有人能帮我解决这个问题吗。
cluster=hfactory.getOrCreateCluster(“test cluster”,“localhost:9160”,凭据); 但不幸的是,它给了我一个错误: HFactory类型中的方法getOrCreateCluster(String,CassandraHostConfigurator,Map)不适用于参数(String,String,Map)