邮件发送功能

邮件发送功能

该功能可用于监控程序时,用邮件的形式来进行发送通知,比如异常信息,报警信息等

'''
指定(/usr/bin/python)目录下的python解释器执行python脚本
根据PATH环境变量中指定的第一个python解释器,执行python脚本
如果在linux环境中,创建了多个Anaconda或者virtualenv虚拟环境,而这些虚拟环境在不同路径中,会有各自的python解释器。使用【#!/usr/bin/env python】声明,可以保证脚本使用各自虚拟环境中的 python解释器来执行python脚本

#声明该文件的编码格式为 utf-8
# 作者
'''

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'xingyun'

'''
邮件发送功能
该功能可用于监控程序时,用邮件的形式来进行发送通知,比如异常信息,报警信息等
'''
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr

import smtplib
def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))


# 发件人
from_addr = '114***1340@qq.com'
# 密码
#此处会报错535, b'Login Fail, 因为此处需要输入qq邮箱授权码,而不是邮箱密码
#邮箱授权码在设置-> 将 POP3/SMTP服务 开启或者重新开启,便会出现授权码
password = '********'
# 收件人(可以是多个收件人)
to_addr = '114***1340@qq.com'
#to_addr = '114***1340@qq.com' , '791***648@qq.com'

# 发件人的smtp服务器地址
smtp_server = 'smtp.qq.com'



# 构建一个文本的mail对象
# 内容主体为纯文本格式的邮件
msg = MIMEText('邮件的文本内容', 'plain', 'utf-8')

# 发件人  (邮箱收到的效果是:发件人名称<liang_xin_rong@163.com>)
msg['From'] = _format_addr('发件人名称 <%s>' % from_addr)

# 收件人  (邮箱收到的效果是:收件人名称<liang_xin_rong@163.com>)
msg['To'] = _format_addr('收件人名称 <%s>' % to_addr)
# 标题
msg['Subject'] = Header('邮件标题', 'utf-8').encode()



# 构建一个 smtp 对象, SMTP协议默认端口是25
server = smtplib.SMTP(smtp_server, 25)
# 设置一个调试级别
# server.set_debuglevel(1)
# 登录
server.login(from_addr, password)
# 发送邮件
# msg.as_string()把MIMEText对象变成str  , [] 代表一次可以发给多个人
server.sendmail(from_addr, [to_addr], msg.as_string())
#断开连接
server.quit()





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值