一、Python发送邮件

import smtplib
from email.mime.text import MIMEText
def send(email_to,title,content):
msg = MIMEText(content,"plain","utf-8")
froms = "1257063655@qq.com"
to_list = email_to.replace("\n","").split(",")
print(to_list)
msg["Subject"] = title # 传参
msg["From"] = froms # 发件人
msg["To"] = email_to # 收件人
server = smtplib.SMTP_SSL("smtp.qq.com",)
server.login(froms,"oylltctlxijogdbb")
server.sendmail(froms,to_list,msg.as_string())
# 发送人,收件人列表, # 内容
print("发送成功")
server.quit() title = "邮件报警测试"
content = """系统磁盘空间或内存可能快要满了"""
email_to = """
@qq.com
"""
if __name__ == '__main__':
send(email_to,title,content)

二、zabbix实现邮件报警

1)添加python脚本文件

#! /usr/bin/env python3
# -*- coding: utf- -*-
import smtplib
import sys
from email.mime.text import MIMEText
def send_mail(email_to,title,content):
msg = MIMEText(content,"plain","utf-8")
froms = "1257063655@qq.com"
to_list = email_to.replace("\n","").split(",")
print(to_list)
msg["Subject"] = title # 传参
msg["From"] = froms # 发件人
msg["To"] = email_to # 收件人
server = smtplib.SMTP_SSL("smtp.qq.com",)
server.login(froms,"oylltctlxijogdbb")
server.sendmail(froms,to_list,msg.as_string())
server.quit() if __name__ == '__main__':
send_mail(sys.argv[], sys.argv[], sys.argv[])

send_email.py

2) 使用shell脚本去调用python脚本来进行发送邮件

[root@zabbix alertscripts]# cat send_email.sh
#!/bin/sh
/usr/bin/python3 /usr/local/zabbix/alertscripts/send_email.py $ $ $

[root@zabbix alertscripts]# chmod o+x send_email.sh

163邮箱测试

from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import logging
import smtplib def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr)) from_addr = 'nick1236xx@163.com'
password = 'dasb1234' # 授权码 # 输入SMTP服务器地址:
smtp_server = 'smtp.163.com' def sendmail(to_addr, link, secure=True):
title = '<html><body><h3>亲爱的<a data-auto-link="1" href="mailto:%s" target="_blank">%s</a>,您好:</h3>' % (to_addr, to_addr)
reset = "<div style = 'padding-left:55px;padding-right:55px;font-family:'微软雅黑','黑体',arial;font-size:14px;'>重置密码</div>"
body = '<p>请点击以下链接进行重置密码 <a href="%s">%s</a></p>' % (link, reset)
tail = '如果您并不是Awesome用户,可能是其他用户误输入了您的邮箱地址。</body></html>'
html = title + body + tail
msg = MIMEText(html, 'html', 'utf-8')
# 发送地址格式 都需要编码
msg['From'] = _format_addr('Awesome Python Webapp <%s>' % from_addr)
msg['To'] = _format_addr('亲爱的用户 <%s>' % to_addr)
msg['Subject'] = Header('重置密码', 'utf-8').encode()
try:
if secure:
server = smtplib.SMTP_SSL(smtp_server, ) # 启用SSL发信, 端口一般是465
else:
server = smtplib.SMTP(smtp_server, )
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
except smtplib.SMTPException as e:
logging.error('sendemail:%s' % e) if __name__ == '__main__':
# 输入收件人地址:
to_addr = '150648003@qq.com'
sendmail(to_addr, 'http://www.baidu.com', True)

最新文章

  1. Java-继承,多态-0922-04
  2. Oracle创建、删除表空间、用户
  3. Ibatis对日期的处理
  4. endsWith和startsWith同样效果其他形式的写法(2016.1.12)
  5. C++中静态数据成员
  6. SVN与TortoiseSVN实战:补丁详解
  7. 深入理解 AngularJS 的 Scope(转)
  8. POJ 1564 Sum It Up(DFS)
  9. Hadoop书籍下载链接
  10. PHP7链接MySQL
  11. 周末班:Python基础之面向对象基础
  12. Linux Django项目部署
  13. Python SQLAlchemy多对多外键关联时表结构
  14. 小L的试卷
  15. Kafka集群管理工具kafka-manager的安装使用
  16. shell 中的三种引号的作用
  17. 开启redis-server提示 # Creating Server TCP listening socket *:6379: bind: Address already in use--解决方法
  18. (转)测试rootvg卷组的镜像的官方做法
  19. Linux进程间通信 -- 管道(pipe)
  20. C#委托和事件详解

热门文章

  1. Ajax请求的几个小练习
  2. 转apk打包
  3. Java虚拟机------JVM内存区域
  4. 爬取WX小程序的数据
  5. 6. 添加messager.alert()确定按钮的回调函数,即点完确定按钮后触发的事件
  6. Open SuSE 安装Python3.6
  7. Spring MVC和Spring Boot的理解以及比较
  8. 预浸料(Prepreg,PreimpregnatedMaterials)
  9. Vue开源项目汇总(史上最全)(转)
  10. 退出vim编辑器(转)