1. 程式人生 > >將日誌內容或文件以伺服器郵件的方式傳送出去

將日誌內容或文件以伺服器郵件的方式傳送出去

不多說,直接上碼!

文件彪紅色的地方是必須修改項,請知曉!

'''
執行內容:傳送帶附件的有郵件
'''

from email import encoders
from email.mime.text import MIMEText
from email.utils import formatdate
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.header import Header
import smtplib
import os.path
import time
from datetime import datetime,date,timedelta

From = "郵件傳送名稱"

#多個收件人用逗號隔開
To = "收件人1,收件人2,收件人3"
acc = '抄送人員1'

# 時間戳
datatimes = (date.today() + timedelta(days = -1)).strftime("%Y-%m-%d")
datatime_1 = (date.today() + timedelta(days = -1)).strftime("%Y%m%d")

# 呼叫檔案位置/
file_name = "檔案路徑
host = "地址"
server = smtplib.SMTP(host,埠號)
#smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
# server.login(passworld) #僅smtp伺服器需要驗證時

# 構造MIMEMultipart物件做為根容器
main_msg = MIMEMultipart()


#數量統計
list_nub=[]
with open(file_name,'rb') as f:
    for line in f:
        list_nub.append(line)
rowNum = str(len(list_nub)-1)


# 構造MIMEText物件做為郵件顯示內容並附加到根容器
text_msg = MIMEText("郵件主要內容")
main_msg.attach(text_msg)

# 構造MIMEBase物件做為檔案附件內容並附加到根容器
contype = 'application/octet-stream'
maintype, subtype = contype.split('/', 1)

# 讀入檔案內容並格式化
data = open(file_name, 'rb')
file_msg = MIMEBase(maintype, subtype)
file_msg.set_payload(data.read( ))
data.close()
encoders.encode_base64(file_msg)

# 設定附件頭
basename = os.path.basename(file_name)
#解決中文附件名亂碼問題
file_msg.add_header('Content-Disposition', 'attachment', filename=('gbk', '', basename))
main_msg.attach(file_msg)

# 設定根容器屬性
main_msg['From'] = From
main_msg['To'] = To

main_msg['Cc'] = acc
main_msg['Subject'] = Header("標題","utf-8")
main_msg['Date'] = formatdate( )

# 得到格式化後的完整文字
fullText = main_msg.as_string( )

# 用smtp傳送郵件
# try:
#     #傳送給多人、同時抄送給多人,傳送人和抄送人放在同一個列表中
server.sendmail(From, To.split(',') + acc.split(','), fullText)
# finally:
#   server.quit()