国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解Python發送郵件實例

2020-01-04 17:51:31
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python發送郵件實例,Python發送郵件需要smtplib和email兩個模塊,感興趣的小伙伴們可以參考一下
 

Python發送郵件需要smtplib和email兩個模塊。也正是由于我們在實際工作中可以導入這些模塊,才使得處理工作中的任務變得更加的簡單。今天,就來好好學習一下使用Python發送郵件吧。

SMTP是發送郵件的協議,Python內置對SMTP的支持,可以發送純文本郵件、HTML郵件以及帶附件的郵件。

Python對SMTP支持有smtplib和email兩個模塊,email負責構造郵件,smtplib負責發送郵件。

1.郵件正文是文本的格式

# -*- coding: UTF-8 -*-from email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimport smtplibimport sysimport csvimport xlrdfrom pyExcelerator import *import osimport xlwtfrom xlutils.copy import copyimport pyExceleratorimport datetimeimport timereload(sys)sys.setdefaultencoding("utf-8")mailto_list = [""] # 郵件接收方的郵件地址mail_host = "smtp.exmail.qq.com"  # 郵件傳送協議服務器mail_user = "" # 郵件發送方的郵箱賬號mail_pass = "" # 郵件發送方的郵箱密碼def send_mail(to_list, sub, content):  me = "天才白癡夢"+"<"+mail_user+">"  msg = MIMEText(content, _subtype='plain', _charset='utf-8')  msg['Subject'] = sub  # 郵件主題  msg['From'] = me  msg['To'] = ";".join(to_list)  try:    server = smtplib.SMTP()    server.connect(mail_host)    server.login(mail_user, mail_pass)    server.sendmail(me, to_list, msg.as_string())    server.close()    return True  except Exception, e:    print str(e)    return Falseif __name__ == '__main__':  sub = "天才白癡夢"  content = '...'  if send_mail(mailto_list, sub, content):    print "發送成功"  else:    print "發送失敗"

2.郵件正文是表格的格式:由于是表格,所以我們選擇HTML來實現表格的功能,郵件上面顯示的就是HTML實現的內容了。

# -*- coding: UTF-8 -*-from email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimport smtplibimport sysimport csvimport xlrdfrom pyExcelerator import *import osimport xlwtfrom xlutils.copy import copyimport pyExceleratorimport datetimeimport timereload(sys)sys.setdefaultencoding("utf-8")mailto_list = [""] # 郵件接收方的郵件地址mail_host = "smtp.exmail.qq.com"  # 郵件傳送協議服務器mail_user = "" # 郵件發送方的郵箱賬號mail_pass = "" # 郵件發送方的郵箱密碼def send_mail(to_list, sub, content):  me = "天才白癡夢"+"<"+mail_user+">"  # 和上面的代碼不同的就是,這里我們選擇的是html 的格式  msg = MIMEText(content, _subtype='html', _charset='utf-8')  msg['Subject'] = sub  # 郵件主題  msg['From'] = me  msg['To'] = ";".join(to_list)  try:    server = smtplib.SMTP()    server.connect(mail_host)    server.login(mail_user, mail_pass)    server.sendmail(me, to_list, msg.as_string())    server.close()    return True  except Exception, e:    print str(e)    return Falseif __name__ == '__main__':  sub = "天才白癡夢"  html = '<html></html>'  if send_mail(mailto_list, sub, html):    print "發送成功"  else:    print "發送失敗"

3.郵件正文是圖片的格式:要把圖片嵌入到郵件正文中,我們只需按照發送附件的方式,先把郵件作為附件添加進去,然后,在HTML中通過引用src="cid:0"就可以把附件作為圖片嵌入了。如果有多個圖片,給它們依次編號,然后引用不同的cid:x即可。

def send_mail(to_list, sub, content):  me = "天才白癡夢"+"<"+mail_user+">"  msg = MIMEMultipart()  msg['Subject'] = sub  # 郵件主題  msg['From'] = me  msg['To'] = ";".join(to_list)  txt = MIMEText("天才白癡夢", _subtype='plain', _charset='utf8')  msg.attach(txt)  # <b>:黑體 <i>:斜體  msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img  msg.attach(msgText)  file1 = "F://1.jpg"  image = MIMEImage(open(file1, 'rb').read())  image.add_header('Content-ID', '<image1>')  msg.attach(image)  try:    server = smtplib.SMTP()    server.connect(mail_host)    server.login(mail_user, mail_pass)    server.sendmail(me, to_list, msg.as_string())    server.close()    return True  except Exception, e:    print str(e)    return Falseif __name__ == '__main__':  sub = "天才白癡夢"  html = '<html></html>'  if send_mail(mailto_list, sub, html):    print "發送成功"  else:    print "發送失敗"

4.發送郵件附件:郵件附件是圖片

def send_mail(to_list, sub, content):  me = "天才白癡夢"+"<"+mail_user+">"  msg = MIMEMultipart()  msg['Subject'] = sub  # 郵件主題  msg['From'] = me  msg['To'] = ";".join(to_list)  txt = MIMEText("天才白癡夢", _subtype='plain', _charset='utf8')  msg.attach(txt)  # # <b>:黑體 <i>:斜體  # msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img  # msg.attach(msgText)  #  # file1 = "F://1.jpg"  # image = MIMEImage(open(file1, 'rb').read())  # image.add_header('Content-ID', '<image1>')  # msg.attach(image)  att = MIMEText(open('F://1.jpg', 'rb').read(), 'base64', 'utf-8')  att["Content-Type"] = 'application/octet-stream'  att["Content-Disposition"] = 'attachment; filename="1.jpg"'  msg.attach(att)  try:    server = smtplib.SMTP()    server.connect(mail_host)    server.login(mail_user, mail_pass)    server.sendmail(me, to_list, msg.as_string())    server.close()    return True  except Exception, e:    print str(e)    return False

5.發送群郵件:同時發送給多人
mailto_list = [""]  # 郵件接收方的郵件地址
上面這一行代碼是郵件接收方的郵件地址,如果我們需要給多人發送郵件的話,就只需要把對方的郵件帳號綁在這一個列表里就ok了。

加密SMTP

使用標準的25端口連接SMTP服務器時,使用的是明文傳輸,發送郵件的整個過程可能會被竊聽。要更安全地發送郵件,可以加密SMTP會話,實際上就是先創建SSL安全連接,然后再使用SMTP協議發送郵件。

方法:只需要在創建SMTP對象后,立刻調用starttls()方法,就創建了安全連接。

smtp_server = 'smtp.qq.com'smtp_port = 25  # 默認端口號為25server = smtplib.SMTP(smtp_server, smtp_port)server.starttls()# 剩下的代碼和前面的一模一樣:server.set_debuglevel(1)   # 打印出和SMTP服務器交互的所有信息

以上就是關于Python發送郵件詳細解析,希望對大家的學習有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 望江县| 南宁市| 尼勒克县| 沙雅县| 昌平区| 孝昌县| 北辰区| 图们市| 祁门县| 宜川县| 青海省| 连南| 闻喜县| 长治县| 通海县| 武隆县| 彰化县| 卓资县| 德阳市| 保康县| 麟游县| 楚雄市| 北宁市| 梁山县| 吉安县| 台湾省| 阜宁县| 漳浦县| 齐齐哈尔市| 宁乡县| 阜新| 望江县| 集安市| 托克托县| 淮南市| 静乐县| 瑞安市| 白河县| 科尔| 万载县| 山阴县|