有办法在发送邮件时不硬编码用户名和密码吗?[python]

2 投票
3 回答
1834 浏览
提问于 2025-04-16 19:33

我想知道有没有办法不把我的用户名和密码写死在一个脚本里,这个脚本是用来复制文件并通过SMTP(比如Gmail)发送的。

谢谢!

3 个回答

1

让这个脚本接受用户名作为命令行参数。

如果你导入了sys模块,那么sys.argv就是一个包含所有命令行参数的列表,其中第一个元素是你运行的Python脚本的名字。

1

把你的数据存储为环境变量或者放在一个配置文件里...

1

我觉得最好的办法是把密码加密存储,具体用什么算法你可以自己选择。然后当用户给你凭证时,你检查一下这些凭证是否和存储的加密数据匹配,如果匹配就发送。这么做可以省去你在任何文件或数据库中保存明文密码的步骤。无论如何,你没有说明你是否真的需要保存明文密码(但看起来是因为要远程使用),如果是这样的话,你应该使用双向加密来避免明文密码的出现——虽然这种加密也容易被破解,但至少比直接读取配置文件多了一道步骤。

撰写回答