博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python邮件发送
阅读量:4223 次
发布时间:2019-05-26

本文共 2623 字,大约阅读时间需要 8 分钟。

    今天要给一堆学弟学妹发送面试通知,因为数量较多,直接写个程序发送算了,然后我选择了Python来写,如果想用Java写的可以考虑去使用Apache Commons Email——

http://mvnrepository.com/artifact/org.apache.commons/commons-email。

  废话不说,直接上代码

 
import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerfrom email.utils import parseaddr,formataddr#转换函数,该函数来自廖雪峰老师的教学内容def format_addr(s):    name,addr = parseaddr(s)    return formataddr((Header(name, 'utf-8').encode(), addr))from_addr = "xxxxxxxxxx@qq.com"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+1except:    print("失败")finally:    server.quit()    txt.close()
 

数据文件格式

小明xxxxxxxx@xx.com............
即一行名字一行邮箱地址。

辣鸡代码,大家随便看看就好了。。。

转载地址:http://engmi.baihongyu.com/

你可能感兴趣的文章
Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
查看>>
CSDN博客之星 投票说明
查看>>
Oracle wallet 配置 说明
查看>>
Oracle smon_scn_time 表 说明
查看>>
VBox fdisk 不显示 添加的硬盘 解决方法
查看>>
Secure CRT 自动记录日志 配置 小记
查看>>
RMAN RAC 到 单实例 duplicate 自动分配通道 触发 ORA-19505 错误
查看>>
mysql 随机分页的优化
查看>>
DB2快速创建测试库
查看>>
SD卡驱动分析--基于高通平台
查看>>
[图文] Seata AT 模式分布式事务源码分析
查看>>
pm 源码分析
查看>>
kmsg_dump
查看>>
Getting a Result from an Activity
查看>>
Allowing Other Apps to Start Your Activity
查看>>
dev/mem
查看>>
pfn_valid 源码分析
查看>>
dev/kmem 和dev/mem的区别
查看>>
test-definitions/blob/master/auto-test/bigdata/bigdata.sh
查看>>
/test-definitions/blob/master/auto-test/blktrace/blktrace.sh
查看>>