前面用perl写的群发邮件的脚本的python版本。
只是为了学习啊,东西虽然小,我是刚刚学,还是写了一段时间的。
代码如下。
在winxp + python 2.3.4 + winmail mailserver 3.8下正常通过。
Code: |
#!/usr/bin/env python # -*- coding: cp936 -*- import smtplib import time ###################################################### ## 例程 gingerMail ## 参数列表 ## smtp_server 发邮件smtp服务器地址 ## from_usr 发件人地址 ## to_usr 收件人地址 ## title 邮件标题 ## msg 邮件内容 ## auth 是否需要认证,1为是,0为否 ## log_usr smtp用户名 ## log_passwd smtp密码 ## ###################################################### def gingerMail(smtp_server,from_usr,to_usr,title,msg,auth,log_usr,log_passwd): server = smtplib.SMTP(smtp_server) #server.set_debuglevel(1) if auth == 1: server.login(log_usr,log_passwd) head = "From: " + from_usr + "\n" head = head + "To: " + to_usr + "\n" head = head + "Subject: " + title + "\n\n" msg = head + msg server.sendmail(from_usr, to_usr, msg) server.quit() ###################################################### ## ## 以下为配置内容 ## ###################################################### #邮件发送服务器地址 smtp_server = 'localhost' #发件人地址 from_usr = 'ginger@localhost' #邮件标题 title = '测试邮件一个,接好,别砸到!' #发一封歇息多久 delay = 1 #smtp服务器是否需要验证 #需要验证为1不需要为0 auth = 1 #如果需要验证,请在下面输入用户名和密码 log_usr="ginger" log_passwd="123456" #包含收件人列表及可变信息的文本文件 #格式为:用户名,密码,详细信息 #请把它放在当前目录下,并把它命名为list.txt f_list='list.txt'; try: f=open(f_list,'r') lines=f.readlines() #邮件计数变量 cnt = 0 for line in lines: (to_usr,passwd,detail) = line.split(",") #如果你的列表里直接存的就是email地址,请注释掉下面这一条 to_usr = to_usr + "@localhost" msg = detail +", 您好\n\n" msg = msg + "我们的邮件服务器地址已经变为xxxxxxxx.\n" msg = msg + "您的用户名为" + to_usr + "密码为" + passwd msg = msg + "请尽快登陆修改。\n由于本次更改给您工作带来的不便在此表示歉意。\n谢谢您的支持。\n" cnt = cnt + 1 print "I am sending Email No." + str(cnt) + " to " + to_usr + "......\n" gingerMail(smtp_server,from_usr,to_usr,title,msg,auth,log_usr,log_passwd) print "Email No." + str(cnt) + " has been sent to: " + to_usr + "\n" time.sleep(delay) f.close() print "\n......All Finished!!!" except IOError: print "Can not open list file please place it in current directory and name it as 'list.txt'\n" |
测试用列表文件list.txt的内容
Code: |
ginger,1111,臭老九 postmaster,2222,姜源 sleetdrop,3333,酱小鱼 ginger,4444,小姜 |
运行结果
收到的邮件