使用Python和Gmail作为提供商发送电子邮件的安全方式是什么?

时间:2014-08-01 16:39:23

标签: python email gmail raspberry-pi smtplib

我正在尝试使用Python脚本向自己发送电子邮件,幸运的是我发现了这篇文章:

How to send an email with Gmail as provider using Python?

麻烦的是,smtplib以纯文本形式发送脚本的密码,我对它的安全性持怀疑态度。此外,我的脚本以纯文本格式包含我的用户名和密码。有没有什么好方法可以使用Python并发送电子邮件而无需将我的密码保留为纯文本?

我也在StackOverflow上看到了这个: Python smtplib security 但答案并不能完全帮助我解决这场冲突。但是,我还没准备好放弃。


更多信息:我试图将我的Raspberry Pi设置为通过网站进行擦除的服务器。当关于网站的具体事情发生变化时,我希望通过电子邮件收到通知。但是,我不想让我的Pi坐在一个带有我的用户名和密码的脚本中。

3 个答案:

答案 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真的希望我们使用两步验证,从而使用特定于应用程序的密码。我想我会这样做,并且不得不输入短信代码来立即登录我的电子邮件......