Python发送邮件模块(SMTP)

首先,使用SMTP实现发送邮件的话,需要先获取一个代发邮件的授权码。

以163邮箱为例:

登录邮箱后--点击设置--客户端授权码--开启。如图

其实网上已经有很多类似的模块介绍和试用了,这边主要是想记录下自己写的一个类。调用方式简单,可以直接将py文件贴到项目中,import后直接调用,方便快捷,简单高效。

# coding=utf-8
import sys, os, fileinput, smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


reload(sys)
sys.setdefaultencoding('utf-8')


class EmailUtils:
    def __init__(self, mailto_list, email_title, email_content):
        self.mailto_list = mailto_list
        self.email_title = email_title
        self.email_content = email_content

    # 发送邮件
    def send_mail(self):
        # 设置服务器名称、用户名、密码以及邮件后缀
        mail_host = 'smtp.163.com'
        mail_user = 'XXXXX@163.com' # 邮箱地址
        mail_pass = 'xxxxxxxx' # 即授权码
        # mailto_list = ['hzk@meitu.com']
        me = mail_user
        msg = MIMEMultipart()
        msg['Subject'] = self.email_title
        msg['From'] = me
        msg['To'] = ",".join(self.mailto_list)
        # html = '''<!DOCTYPE html>dddd</html>'''

        context = MIMEText(self.email_content, _subtype='html', _charset='utf-8')  # 解决乱码
        msg.attach(context)
        send_smtp = smtplib.SMTP()
        send_smtp.connect(mail_host)
        send_smtp.login(mail_user, mail_pass)
        send_smtp.sendmail(me, self.mailto_list, msg.as_string())
        send_smtp.close()


if __name__ == '__main__':

    mail_content = """"""
    mail_content += "APP名称:" + "\n"
    mail_content += "编译时间" + "\n"
    mail_content += "编译版本" + "\n"
    mail_content += "测试时间" + "\n"
    mail_content += "\n"
    # 读取一个文件
    file_input_stream = fileinput.input(os.getCwd() + "\\testResult\\result.log")
    for line in file_input_stream:
        mail_content += line + "\n"
    EmailUtil.send_mail(['xxx@163.com','yyy@163.com','zzz@163.com'], "test", mail_content)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值