我正在尝试使用Python脚本向自己发送电子邮件,幸运的是我发现了这篇文章:
How to send an email with Gmail as provider using Python?
麻烦的是,smtplib以纯文本形式发送脚本的密码,我对它的安全性持怀疑态度。此外,我的脚本以纯文本格式包含我的用户名和密码。有没有什么好方法可以使用Python并发送电子邮件而无需将我的密码保留为纯文本?
我也在StackOverflow上看到了这个: Python smtplib security 但答案并不能完全帮助我解决这场冲突。但是,我还没准备好放弃。
更多信息:我试图将我的Raspberry Pi设置为通过网站进行擦除的服务器。当关于网站的具体事情发生变化时,我希望通过电子邮件收到通知。但是,我不想让我的Pi坐在一个带有我的用户名和密码的脚本中。
答案 0 :(得分:6)
该连接使用STARTTLS,因此不会以明文形式通过互联网发送。
函数server.starttls()
启动与端口465上的服务器的加密通信,而不是未加密的SMTP邮件流量的正常端口25。
答案 1 :(得分:1)
一个明显的解决方案是使用
getpass.getpass()
在运行开始时获取密码,并将其存储在内存中。
答案 2 :(得分:0)
即使使用starttls
我刚刚被Gmail阻止从我的Python脚本发送电子邮件(过去有效)...我得到一个SMTPAuthenticationError
,其中包含一个链接以继续通过尝试通过smtplib
发送邮件的浏览器对我的Python脚本没有帮助。我没有" 2步验证"目前在我的帐户上设置。
我必须转到我的Google帐户(在浏览器中),然后选择一个选项以启用对安全性较低的应用的访问权限"
https://www.google.com/settings/security
更改它允许我的脚本再次工作。看起来Google真的希望我们使用两步验证,从而使用特定于应用程序的密码。我想我会这样做,并且不得不输入短信代码来立即登录我的电子邮件......