python傳送html格式的郵件
阿新 • • 發佈:2018-11-25
python發郵件
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 import smtplib 4 from email.mime.text import MIMEText 5 import string 6 mailto_list=["[email protected]","XXX@163.com"] 7 print mailto_list 8 mail_host="smtp.exmail.qq.com" #設定伺服器 9 mail_user="XX@qq.com" #使用者名稱 10 mail_pass="passwd" #口令 11 neirong="<ul><li><font size=\"2\">12345</font></li></ul>" 12 13 def send_mail(to_list,sub,content): #定義一個函式,收件人、標題、郵件內容 14 me="hello"+"<"+mail_user+">" #發件人定義,這裡要和認證帳號一致才行的 15 msg = MIMEText(content,_subtype='html',_charset='utf-8') #這裡看email模組的說明,這裡構造內容16 msg['Subject'] = sub 17 msg['From'] = me 18 # msg['To'] = string.join(mailto_list,",") #這是2中的一種寫法,通過string.join()函式,可以把元組中的各個欄位以“,”分隔,和下面達到一樣的效果 19 msg['To'] = ",".join(mailto_list) #這種在2和3都可以用,在3中,string模組中取消了join()函式,join()函式作為一個全域性函式被使用 20 try: 21 server = smtplib.SMTP()22 server.connect(mail_host) 23 # server.starttls() 24 server.login(mail_user,mail_pass) 25 server.sendmail(me, to_list, msg.as_string()) 26 server.close() 27 return True 28 except Exception, e: 29 print str(e) 30 return False 31 if __name__ == '__main__': #做個判斷,當直接呼叫的時候才執行這個函式,什麼是直接呼叫?就是我直接執行這個指令碼的時候就是直接呼叫,如果我在別的指令碼匯入這個指令碼在執行就是間接呼叫 32 if send_mail(mailto_list,"hello",neirong): 33 print "傳送成功" 34 else: 35 print "傳送失敗"