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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章