将日志内容或文档以服务器邮件的方式发送出去

不多说,直接上码!

文档彪红色的地方是必须修改项,请知晓!

'''
运行内容:发送带附件的有邮件
'''

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()
 

猜你喜欢

转载自blog.csdn.net/Jiaxing_Li/article/details/85691626
今日推荐