这个脚本是一个关于发邮件的小脚本,算是一个邮件接口吧,可以实现统一发邮件到外网,适合网络比较封闭的环境。

cat mail_socket.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import socket
import smtplib
from email.MIMEText import MIMEText
def log_w(log_text):
logfile = "/data/shell_files/send_msg/mail_socket.log"
line = "============================================================="
now = time.strftime("%Y-%m-%d %H:%M:%S")
tt = line + "\n" +now + "\n" + str(log_text) + "\n"
f = open(logfile,'a+')
f.write(tt)
f.close()
def send_mail(to_list,sub,content):
mail_host="192.168.100.23"
mail_user="xiaocui@qq.com"
mail_pass="123456"
mail_postfix="chunbai.com"
me="cuiyuanrong<"+mail_user+">"
msg = MIMEText(content)
msg['Subject'] = sub
msg['From'] = me
msg['To'] = to_list
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception, e:
log_w(str(e))
return False
HOST = '0.0.0.0'
PORT = 55555
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(1)
while True:
conn,addr = s.accept()
data = conn.recv(1024)
remote_text = data.split(',')
mail_to = remote_text[0]
mail_title = remote_text[1]
mail_msg = remote_text[2]
if send_mail(mail_to,mail_title,mail_msg):
log_w('Connected by:' + str(addr) + '\n' + data + '\n' + 'Send mail success.')
conn.send("ok")
else:
log_w('Connected by:' + str(addr) + '\n' + data + '\n' + 'Send mail failed.')
conn.send("error")
conn.close()