很久很久以前的事情了,今天整理发现一团代码,扔生来吧
花了很多搞了gerrit 服务docker化, 账户添加完毕,老大说你给他们每个人发个邮件通知,另外把邮件内容写的漂亮点,格式化一下,顺便把使用向导镐一下,使用向导中直接使用目标的用户名密码.....---囧.....几十号人,挨个发邮件,顺便把用户名密码更新一进去,死人的会.
功能:
1:从邮件用户名列表读取用户名和密码
2: 载入邮件header信息
3: 载入email内容信息,并替换其中的关键字为对应的用户名和密码
so ,写个代码吧,
载入一个邮件模板,然后替换其中的用户名密码标志,按照用户名挨个发呗..
直接贴代码了
发送代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#导入smtplib和MIMEText
import smtplib
from email.mime.text import MIMEText
import base64
import sys
from optparse import OptionParser
import codecs
import time
mailto_list=["[email protected]","[email protected]"]
########smtp setting#############
mail_host="smtp.exmail.qq.com"
mail_user="[email protected]"
mail_pass="xxx"
mail_postfix="xxx.com"
######################
def send_mail(to_list,sub,content,type='html'):
'''
to_list:发给谁
sub:主题
content:内容
send_mail("[email protected]","sub","content")
'''
me=mail_user+"<"+mail_user+">"
msg = MIMEText(content,_subtype=type,_charset='UTF-8')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
s = smtplib.SMTP()
print("@@!@@")
print s.connect(mail_host)
print("@@!@@")
print s.login(mail_user,mail_pass)
print("@@!@@")
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception, e:
print("@@!@@")
print str(e)
return False
def get_email_title(file) :
try :
fd = codecs.open(file,'r','UTF-8')
data = fd.read()
fd.close()
except :
print("read mail title error")
sys.exit(0)
return data
def get_email_content_template(file) :
try :
fd = open(file,'r')
data = fd.read()
fd.close()
except :
print("read mail content error")
sys.exit(0)
return data
def get_user_list(file):
try :
fd = open(file,'r')
data = fd.readlines()
fd.close()
print(type(data) )
except :
print("read user list error")
sys.exit(0)
userPass = []
for line in data :
if len(line) == 0 :
break
if line[0] in ['#',' ','\n'] :
continue
userPass.append(line.split() )
return userPass
def update_email_from_template(template,userPass):
print(type(userPass[0]))
temp= userPass[0].split(".")
big_name = "".join([temp[0][0:1].upper(),temp[0][1:]," ",temp[1][0:1].upper(),temp[1][1:] ] )
print(big_name)
template = template.replace("##USER_NAME",userPass[0]).replace("##USER_PASS",userPass[1]).replace("##USER_FULL",big_name)
return template
if __name__ == '__main__':
parser = OptionParser(usage="usage:%prog [optinos] filepath")
parser.add_option("-u", "--userfile",
action = "store",
type = 'str',
dest = "userFile",
default = "user.lst",
help="user list file ,will delete all users not include in the file and update the password in the file"
)
parser.add_option("-t", "--title",
action = "store",
type = 'str',
dest = "title",
default = "title.t",
help = "email tile template"
)
parser.add_option("-c", "--content",
action = "store",
type = 'str',
dest = "content",
default = "mail.t",
help = "mail content template"
)
(options, args) = parser.parse_args()
userList = get_user_list(options.userFile)
print (userList)
mail_title = get_email_title(options.title)
mail_content = get_email_content_template(options.content)
for user in userList :
print user
send_user = "%[email protected]"%(user[0])
content = update_email_from_template(mail_content,user)
## break
print('begin send')
if send_mail([send_user ],mail_title,content):
print "send to %s ok" %(user[0])
else:
print "send to %s fail" %(user[0])
#user password file ,just edit it ,will update new password to the passwd file
#format :user password ,no space in the start char
#left password empty ,will generate randon password
#tools developed by Bright.Jiang
#
#BSP leader
#
warits.wang 236890
#
#BSP
#
bright.jiang 098765
#sam.zhou 099032
Gerrit服务器升级通知
Dear All :
为提升Gerrit服务器稳定性以及满足空间的需求,我们将从11月16日(下周一)开始统一切换到新服务器。新服务器的代码为旧服务器11/14日最新的版本。为保证代码统一,原服务器将同时停用。届时请大家花几分钟时间重新配置自已的Gerrit环境。
1. 使用以下用户名和密码登录新的Gerrit服务器: http://gerrit.in.infotm.com .
新的用户名密码为: ##USER_NAME ##USER_PASS
2. 点击右上角Anonymous Coward -> Settings -> Contact Information,添写自己的个人信息,如##USER_FULL,(统一格式:英文名空格姓,首字母大写)。点击Register New Email,添写自己的邮箱:##USER_NAME@infotm.com (注意,请使用公司新邮箱),最后点击Save Changes
3. 添加SSH Public Key,左边选则SSH Public Keys,执行命令
$cat ~/.ssh/id_rsa.pub
复制全部内容到gerrit ssh key文本框中,点击Add。 如果没有id_rsa.pub,使用以下命令生成:
$ ssh-keygen -t rsa -C "##USER_NAME@infotm.com"
4. 修改本地git配置:
$ git config --global user.name "##USER_NAME"
$ git config --global user.email "##USER_NAME@infotm.com"
5. 更新本地repo,需要使用新的repo地址重新repo init , 常用的repo地址可以从Wiki上检索:常用Repo地址
6. 常见的repo使用的错误,也会在wiki上不定期更新,欢迎各位参阅和修订,也欢迎 大家把工作中的经验总结更新到Wiki页面。
Enjoy It!
Gerrit Admin
仅作参考,仅作收藏,不惜勿喷