# -*- coding: utf-8 -*-
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from datetime import datetime
import os
import smtplib
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, utf-8).encode(), addr))
# 邮箱定义
smtp_server = smtp.exmail.qq.com
smtp_port = 465
from_addr = chenqingkang@qiniu.com
password = os.environ.get(MAIL_PASSWD)
to_addr = [810959120@qq.com]
# 邮件对象
msg = MIMEMultipart()
msg[From] = _format_addr(发件人 <%s> % from_addr)
msg[To] = _format_addr(收件人 <%s> % to_addr)
msg[Subject] = Header(Warning:单ip请求次数异常, utf-8).encode()
# 获取系统中要发送的文本内容
with open(/opt/nginx/logs/log_ip_top10, r) as f:
line = f.readline().strip()
line = line.split(” “)
print(line)
# 邮件正文是MIMEText:
html = <html><body><h2>一分钟内单ip请求次数超过阀值</h2> + \
<p>ip:%s 请求次数/min:%s</p> % (line[1],line[0]) + \
</body></html>
msg.attach(MIMEText(html, html, utf-8))
server = smtplib.SMTP_SSL(smtp_server, smtp_port)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()