我正在使用Python 2.7.3并成功将我的登录凭据传递给SMTP服务器,以便在发生事件触发器时向我发送文本或电子邮件.但是,现在我想将SMTP服务器登录名和密码存储在一个单独的文件中,以便多个脚本可以使用该信息,这样我就可以共享我的脚本而无需每次都删除我的凭据.
我正在使用Alex Le的伟大教程通过Python发送短信.但现在我想采取以下段并将其放入另一个可由多个脚本调用的文件中.这可以是用户名/密码对或整个部分.
server = smtplib.SMTP( "smtp.gmail.com", 587 ) server.starttls() server.login( '', ' ' )
我认为自己是一个非常基本的Python程序员.我不介意做一些研究,但我认为我需要帮助我应该寻找什么条件.
在生产环境中,我们通常做的是创建一个单独的文件并将其保存在项目之外的某个地方.现在做chmod 600
,即只允许root访问该文件.现在,在代码运行中,通过以超级用户模式运行来读取文件.或者您也可以创建一个可以访问该文件并使用该用户运行代码的其他用户.
或者您可以在系统中使用环境变量.您可以通过在bash shell中执行以下操作来设置一个
export KEY=some_value
然后在你的Python代码中
os.environ.get('KEY')
从.yml文件中获取所有关键变量:
import yaml conf = yaml.load(open('conf/application.yml')) email = conf['user']['email'] pwd = conf['user']['password'] server = smtplib.SMTP( "smtp.gmail.com", 587 ) # add these 2 to .yml as well server.starttls() server.login(email, pwd)
该application.yml将类似于此:
user: email: example@mail.com password: yourpassword
这样,您将永远不会在脚本中看到实际的凭据。