实现邮箱发送信息公用类
工作上时常用遇到需要发送邮件给用户的需求
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
class Mail:
def __init__(self, user, password, addressee):
"""
user:发送方账号
password:发送发账号密码
addressee:收件方账号
"""
self.user = user
self.password = password
self.addressee = addressee
def send_mail(self, data):
"""
data: 发送方发送邮件内容
"""
addressee_name = self.addressee.split("@")[0]
msg = MIMEText(data, 'plain', 'utf-8')
# 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['From'] = formataddr(["监控中心", self.user])
# 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['To'] = formataddr([addressee_name, self.user])
# 邮件的主题
msg['Subject'] = "使用腾讯邮箱发送邮件测试"
# SMTP服务器,腾讯企业邮箱端口是465,腾讯邮箱支持SSL(不强制), 不支持TLS
# qq邮箱smtp服务器地址:smtp.qq.com,端口号:456
# 163邮箱smtp服务器地址:smtp.163.com,端口号:25
server = smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
# 登录服务器,括号中对应的是发件人邮箱账号、邮箱密码
server.login(self.user, self.password)
# 发送邮件,括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.sendmail(self.user, [self.addressee, ], msg.as_string())
# 关闭连接
server.quit()
调用公用类时只需传入发件人账号,密码以及收件人账号即可建立一个对象
再用对象调用对应的子方法即可实现邮箱发送