Python邮件发送

    今天要给一堆学弟学妹发送面试通知,因为数量较多,直接写个程序发送算了,然后我选择了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]
...
.........
即一行名字一行邮箱地址。

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


发布了26 篇原创文章 · 获赞 14 · 访问量 5万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章