#!/usr/bin/python
# -*- coding: utf-8 -*- #此處支持中文字符一定要放在前兩行,置后的話不生效,腳本報錯
#!/usr/bin/env python
import smtplib
from email.mime.text import MIMEText
import string
import time
import datetime
HOST = "mail.xxxxxx.com" #smtp主機地址
SUBJECT_1 = "xxx數據推送"#郵件標題
SUBJECT_1=unicode(SUBJECT_1,‘utf-8‘) #轉碼成中文,否則推到郵箱顯示為亂碼
TO = [‘[email?protected]‘,‘[email?protected]‘] #定義郵件收件人
FROM = "[email?protected]" #定義郵件發件人
TIME_NOW = time.strftime("%Y%m%d",time.localtime()) #獲取系統當前時間格式為年月日
NOW_TIME = datetime.datetime.now() #
TIME = NOW_TIME + datetime.timedelta(days=-1)#
TIME_YES = TIME.strftime(‘%Y%m%d‘) #獲取系統昨日時間,格式為年月日
TITLE="xxx_"+TIME_YES+"_12:00-"+TIME_NOW+"_12:00"+".csv" #定義郵件文件名,這里用到了自動獲取昨日日期和今日日期作為文件名的一部分,具體效果為:
xxx_20160708_1500-20160710_1200
#創建一個MIMEText對象,附加name.txt文檔
attach_1 = MIMEText(open("name.txt","rb").read(),"base64","utf-8") #打開name.txt文件
attach_1["Content-Type"] = "application/octet-stream" #指定文件格式類型
#指定Content-Disposition值為attachment則出現下載保存對話框,保存的默認文件名使用filename指定
attach_1["Content-Disposition"] = "attachment; filename="+TITLE
#比如qqmail使用gb18030頁面編碼,為了保證收到郵件時,中文文件名不出現亂碼,需要對文件名進行編碼轉換
decode("utf-8").encode("gb18030")
msg_1 = MIMEMultipart(‘related‘)
msg_1.attach(attach_1) #MIMEMultipart對象附加MIMEText附件內容
msg_1[‘Subject‘] = SUBJECT_1 #郵件主題
msg_1[‘From‘] = FROM #郵件發件人,郵箱頭部可見
#msg_1[‘TO‘] = TO #郵件收件人,郵件頭部可見,可有可無
try:
server = smtplib.SMTP() #創建一個SMTP()對象
server.connect(HOST,"25") #通過connect方法連接smtp主機
server.starttls() #啟動安全傳輸模式
server.login(‘name‘,‘mypassword‘)#郵箱賬號登錄校驗
server.sendmail(FROM,TO,msg_1.as_string()) #郵件發送
server.quit() #斷開smtp連接
print "success!"
except Exception, e:
print "fail:"+str(e)
時間: 07-11