今天要给一堆学弟学妹发送面试通知,因为数量较多,直接写个程序发送算了,然后我选择了Python来写,如果想用Java写的可以考虑去使用Apache Commons Email——
http://mvnrepository.com/artifact/org.apache.commons/commons-email。
废话不说,直接上代码
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr,formataddr
#转换函数,该函数来自廖雪峰老师的教学内容
def format_addr(s):
name,addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
from_addr = "[email protected]"
password = "xxxxxxxxxxxxxx"
smtp_server = "smtp.qq.com"
try:
txt = open(r"baoming.txt","r",-1,"utf-8")
server = smtplib.SMTP(smtp_server, 587)
# 记得加密。。。一开始发送失败,因为腾讯的smtp服务需要加密
server.starttls()
server.set_debuglevel(1)
server.login(from_addr, password)
line = txt.readline()
#去掉换行符
line = line.strip("\n")
n = 1
while line:
name = line
line = txt.readline()
line = line.strip("\n")
email = line
to_addr = email
print(name,email)
#这里是为了分批
if n <= 9:
if n%2==1:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于21日晚7点前到软件楼321教室签到准备面试,收到请回复,特殊情况请另行说明" % name
else:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于21日晚7点前到软件楼323教室签到准备面试,收到请回复,特殊情况请另行说明" % name
elif n>9 and n<=18:
if n % 2 == 1:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于21日晚8点前到软件楼321教室签到准备面试,收到请回复,特殊情况请另行说明" % name
else:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于21日晚8点前到软件楼323教室签到准备面试,收到请回复,特殊情况请另行说明" % name
elif n>18 and n<=27:
if n % 2 == 1:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于22日晚7点前到软件楼321教室签到准备面试,收到请回复,特殊情况请另行说明" % name
else:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于22日晚7点前到软件楼323教室签到准备面试,收到请回复,特殊情况请另行说明" % name
else:
if n % 2 == 1:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于22日晚8点前到软件楼321教室签到准备面试,收到请回复,特殊情况请另行说明" % name
else:
mainText = "%s同学你好,我是技术交流协会的工作人员,请于22日晚8点前到软件楼323教室签到准备面试,收到请回复,特殊情况请另行说明" % name
to_addr = email
print(mainText)
try:
msg = MIMEText(mainText, "plain", "utf-8")
#设置收、发信人与主题
msg["From"] = format_addr("技协工作人员 <%s>" % from_addr)
msg["To"] = "%s"% name
msg["Subject"] = Header("面试通知", "utf-8").encode()
server.sendmail(from_addr, [to_addr], msg.as_string())
except:
print(name,"发送失败")
line = txt.readline()
line = line.strip("\n")
n = n+1
except:
print("失败")
finally:
server.quit()
txt.close()
数据文件格式
小明
[email protected]
...
.........
即一行名字一行邮箱地址。辣鸡代码,大家随便看看就好了。。。