linux下利用mail发送日志

sendsyslog.py
//发送邮件调用程序
#!/usr/bin/env python
# -*- coding: UTF-8 -*-


import os
import sys
sys.path.append(os.getcwd())
import sendlog






############
sendlog.py
//发送邮件配置程序
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
Created on 2012-7-25


@author: [email protected]
...........log........
.....fcntl .......linux
..................pyc..,......py.........
1...pyc .. python -c "import py_compile;py_compile.compile(r'/root/zyy/scripts/sendlog.py')"
2.....py.. sendsyslog.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import os
import sys
sys.path.append(os.getcwd())
import sendlog


'''


from email.Header import Header
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
import smtplib
import datetime
import socket
import fcntl
import struct

def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])

host = "host" + get_ip_address('eth0').split(".")[3]


mail_user = "发件人"
mail_pass = "发件人邮箱密码"
mail_sender = "发件人邮箱"
mail_recipients = [ "收件人邮箱地址1", "收件人邮箱地址2" ]
mail_server = "邮件服务器"


logpath = "发送附件存放目录"
logname = str(datetime.date.today()) + ".log"
logfile = logpath + logname


#..........


msg = MIMEMultipart()




#....


att = MIMEText(open(logfile, 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename=%s %s' % (host,logname)
msg.attach(att)


#....




msg['from'] = mail_sender
msg['subject'] = Header('Server %s daily log (' % host + str(datetime.date.today()) + ')', 'utf-8')




#....


server = smtplib.SMTP()
server.connect(mail_server)
server.login(mail_user, mail_pass)
server.sendmail(mail_sender, mail_recipients, msg.as_string())
server.close()

你可能感兴趣的:(linux,python)