1. 程式人生 > >python爬蟲實現帶附件+html內容以及圖片的郵件傳送

python爬蟲實現帶附件+html內容以及圖片的郵件傳送

# -*- coding: utf-8 -*-
import sys

reload(sys)

sys.setdefaultencoding('utf8')

import smtplib
import email
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

HOST = 'smtp.qq.com'
SUBJECT = '這是帶附件的測試郵件'
FROM = '[email protected]
'
To = '[email protected]' # 定義新增圖片的函式 # path:圖片路徑;imgid對應附件id,可根據id嵌入正文 def add_img(path,imgid): data = open(path,'rb') # 建立MIMEImage物件,讀取圖片作為imgdata的資料引數 msg_img = MIMEImage(data.read()) # 關閉檔案 data.close() # 指定圖片檔案的Content-ID msg_img.add_header('Content-ID',imgid) return
msg_img # 建立要傳送的郵件正文及附件 # related 使用郵件內嵌資源,可以把附件中的圖片等附件嵌入到正文中 msg = MIMEMultipart('related') # 建立文字用於傳送文字的MIMEText物件 # msg_text = MIMEText('詳情見附件~') msg_text = MIMEText('<span style="color:red">詳情如下:</span><br><img src="cid:zg"','html','utf-8') msg.attach(msg_text) # 新增圖片附件
# 新增郵件的正文內容 msg.attach(add_img(u'cookiesession的執行過程.png','zg')) # xls,doc等檔案作為附件新增到郵件中 # 建立MIMEText物件,儲存xls檔案 attach = MIMEText(open(u'1.xls','rb').read(),'base64','utf-8') # 指定當前檔案格式型別 # attach["Content-Type"] = "application/octet-stream" # 配置附件顯示的檔名稱,當點選下載附件時,預設使用的儲存檔案的名稱 # gb18030 :qq郵箱中使用的是gb18030編碼,防止出現中文亂碼 attach['Content-Disposition'] = 'attachment;filename="1.xls"'.decode('utf-8').encode('gb18030') # 把附件新增到msgmsg.attach(attach) # 設定必要請求頭資訊 msg['From'] = FROM msg['To'] = To msg['Subject'] = SUBJECT # 傳送郵件 smtp_server = smtplib.SMTP() smtp_server.set_debuglevel(1) smtp_server.connect(HOST,'25') smtp_server.starttls() smtp_server.login(FROM,'mibhdrhwayxfbife') smtp_server.sendmail(FROM,To,msg.as_string()) smtp_server.quit()