歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

通過Python群發郵件並支持模板

需求:

公司使用SVN,建立用戶,密碼,分配權限,為了保證安全性,密碼隨機生成並通過郵件發送給每個人

資源:

1、會一份表格,中有如下字段:

mail, passwd, name, team, rank

郵箱,密碼,姓名,部門,職位

2、郵件的模板:

%s,您好:
系統為您分配了SVN用戶名和密碼
用戶名:%s(即您的郵箱地址)
密  碼:%s(系統自動分配,不能修改,系統將定期修改並發郵件給大家)

....

主要要帶進去,姓名,郵箱地址,密碼

上代碼:

  1. #! /usr/bin/env python      
  2. # -*- coding: utf-8 -*-      
  3. #@author [email protected]     
  4. #@version 2012-02-22 09:20   
  5.   
  6. import time  
  7. import csv  
  8. import smtplib  
  9. from email.MIMEText import MIMEText  
  10. from email.MIMEMultipart import MIMEMultipart  
  11. from email.Header import Header  
  12.   
  13. mail_host = "smtp.xxx.cn"  
  14. mail_from = "[email protected]"  
  15. mail_user = mail_from  
  16. mail_password = "不告訴你"  
  17. mail_subject = "[SVN密碼通知]重要!此郵件請不要刪除!"  
  18.   
  19. mail_template_file = "郵件模板.txt"  
  20. mail_password_file = "SVN密碼.csv"  
  21.   
  22. def send_mail(mail_to, subject, body):  
  23.     msg = MIMEMultipart()  
  24.     msg['subject'] = Header(subject,'utf-8')   
  25.     msg['from'] = mail_from  
  26.     msg['to'] = mail_to  
  27.     msg['date'] = time.ctime()  
  28.     txt = MIMEText(body, 'plain''utf-8')  
  29.     msg.attach(txt)  
  30.       
  31.     try:  
  32.         s = smtplib.SMTP()  
  33.         s.connect(mail_host)  
  34.         s.login(mail_user, mail_password)  
  35.         s.sendmail(mail_from, mail_to, msg.as_string())  
  36.         s.close()  
  37.         return True  
  38.     except Exception, e:  
  39.         print str(e)  
  40.         return False  
  41.       
  42. if __name__ == '__main__':  
  43.     subject = mail_subject  
  44.     content = open(mail_template_file).read()  
  45.     reader = csv.reader(open(mail_password_file))  
  46.     for mail, passwd, name, team, rank in reader:  
  47.         print mail, passwd, name.decode('utf-8'), team.decode('utf-8')  
  48.         body = content %(name, mail, passwd)  
  49.           
  50.         print "DEBUG:sending mail to %s" %(mail)  
  51.         if send_mail(mail, subject, body):  
  52.             print "INFO:success to send mail to %s" %(mail)  
  53.         else:  
  54.             print "ERROR:fail to send mail to %s" %(mail)  
  55.     print "done...python is great!"  
Copyright © Linux教程網 All Rights Reserved