最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python發(fā)送郵件實(shí)例

 更新時(shí)間:2016年01月10日 09:02:13   投稿:lijiao  
這篇文章主要介紹了Python發(fā)送郵件實(shí)例,Python發(fā)送郵件需要smtplib和email兩個(gè)模塊,感興趣的小伙伴們可以參考一下

Python發(fā)送郵件需要smtplib和email兩個(gè)模塊。也正是由于我們?cè)趯?shí)際工作中可以導(dǎo)入這些模塊,才使得處理工作中的任務(wù)變得更加的簡(jiǎn)單。今天,就來(lái)好好學(xué)習(xí)一下使用Python發(fā)送郵件吧。

SMTP是發(fā)送郵件的協(xié)議,Python內(nèi)置對(duì)SMTP的支持,可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件。

Python對(duì)SMTP支持有smtplib和email兩個(gè)模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件。

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

# -*- coding: UTF-8 -*-

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
import sys
import csv
import xlrd
from pyExcelerator import *
import os
import xlwt
from xlutils.copy import copy
import pyExcelerator
import datetime
import time

reload(sys)
sys.setdefaultencoding("utf-8")

mailto_list = [""] # 郵件接收方的郵件地址
mail_host = "smtp.exmail.qq.com"  # 郵件傳送協(xié)議服務(wù)器
mail_user = "" # 郵件發(fā)送方的郵箱賬號(hào)
mail_pass = "" # 郵件發(fā)送方的郵箱密碼

def send_mail(to_list, sub, content):
  me = "天才白癡夢(mèng)"+"<"+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 False

if __name__ == '__main__':
  sub = "天才白癡夢(mèng)"
  content = '...'
  if send_mail(mailto_list, sub, content):
    print "發(fā)送成功"
  else:
    print "發(fā)送失敗"

2.郵件正文是表格的格式:由于是表格,所以我們選擇HTML來(lái)實(shí)現(xiàn)表格的功能,郵件上面顯示的就是HTML實(shí)現(xiàn)的內(nèi)容了。

# -*- coding: UTF-8 -*-

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
import sys
import csv
import xlrd
from pyExcelerator import *
import os
import xlwt
from xlutils.copy import copy
import pyExcelerator
import datetime
import time

reload(sys)
sys.setdefaultencoding("utf-8")

mailto_list = [""] # 郵件接收方的郵件地址
mail_host = "smtp.exmail.qq.com"  # 郵件傳送協(xié)議服務(wù)器
mail_user = "" # 郵件發(fā)送方的郵箱賬號(hào)
mail_pass = "" # 郵件發(fā)送方的郵箱密碼

def send_mail(to_list, sub, content):
  me = "天才白癡夢(mèng)"+"<"+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 False

if __name__ == '__main__':
  sub = "天才白癡夢(mèng)"
  html = '<html></html>'
  if send_mail(mailto_list, sub, html):
    print "發(fā)送成功"
  else:
    print "發(fā)送失敗"

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

def send_mail(to_list, sub, content):
  me = "天才白癡夢(mèng)"+"<"+mail_user+">"

  msg = MIMEMultipart()
  msg['Subject'] = sub  # 郵件主題
  msg['From'] = me
  msg['To'] = ";".join(to_list)

  txt = MIMEText("天才白癡夢(mèng)", _subtype='plain', _charset='utf8')
  msg.attach(txt)

  # <b>:黑體 <i>:斜體
  msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img alt="" src="cid:image1" />good!', 'html', 'utf-8')
  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 False

if __name__ == '__main__':
  sub = "天才白癡夢(mèng)"
  html = '<html></html>'
  if send_mail(mailto_list, sub, html):
    print "發(fā)送成功"
  else:
    print "發(fā)送失敗"

4.發(fā)送郵件附件:郵件附件是圖片

def send_mail(to_list, sub, content):
  me = "天才白癡夢(mèng)"+"<"+mail_user+">"

  msg = MIMEMultipart()
  msg['Subject'] = sub  # 郵件主題
  msg['From'] = me
  msg['To'] = ";".join(to_list)

  txt = MIMEText("天才白癡夢(mèng)", _subtype='plain', _charset='utf8')
  msg.attach(txt)

  # # <b>:黑體 <i>:斜體
  # msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img alt="" src="cid:image1" />good!', 'html', 'utf-8')
  # 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.發(fā)送群郵件:同時(shí)發(fā)送給多人
mailto_list = [""]  # 郵件接收方的郵件地址
上面這一行代碼是郵件接收方的郵件地址,如果我們需要給多人發(fā)送郵件的話,就只需要把對(duì)方的郵件帳號(hào)綁在這一個(gè)列表里就ok了。

加密SMTP

使用標(biāo)準(zhǔn)的25端口連接SMTP服務(wù)器時(shí),使用的是明文傳輸,發(fā)送郵件的整個(gè)過(guò)程可能會(huì)被竊聽(tīng)。要更安全地發(fā)送郵件,可以加密SMTP會(huì)話,實(shí)際上就是先創(chuàng)建SSL安全連接,然后再使用SMTP協(xié)議發(fā)送郵件。

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

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

以上就是關(guān)于Python發(fā)送郵件詳細(xì)解析,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評(píng)論

顺义区| 高阳县| 平乡县| 乌兰浩特市| 金寨县| 武定县| 喀喇沁旗| 渭南市| 凉城县| 丰县| 平乐县| 岢岚县| 濉溪县| 当涂县| 宁国市| 循化| 台安县| 横山县| 镶黄旗| 楚雄市| 汝南县| 平泉县| 合山市| 鹤岗市| 察雅县| 平度市| 曲沃县| 田林县| 台东县| 太白县| 临邑县| 临夏市| 大丰市| 开江县| 乌拉特前旗| 五家渠市| 瑞金市| 库尔勒市| 石城县| 资源县| 青铜峡市|