使用QQ邮箱的SMTP服务需要在QQ邮箱里设置开启SMTP服务,并获取SMTP的授权码。如果你需要使用网易的SMTP服务也是同样的操作。具体方法可以百度下。

脚本很简单,发送邮件的流程很短,使用的接口也比较少,直接贴代码吧,不解释了。

# !/usr/bin/python
# -*- coding: utf-8 -*-

import smtplib
from email.mime.text import MIMEText


class Email :
    def __init__(self, smtp_user = 'your_email@qq.com', smtp_auth = 'your smtp auth password', smtp_host = 'smtp.qq.com', smtp_port = 465) :
        self.__smtp_host = smtp_host  # 设置的邮件服务器地址,必须是发送邮箱的服务器,与接收邮箱无关
        self.__smtp_port = smtp_port  # 邮件服务器的SMTP端口
        self.__smtp_user = smtp_user  # SMTP用户
        self.__smtp_auth = smtp_auth  # 开启QQ邮箱的SMTP服务时,由QQ邮箱给的授权码,非QQ邮箱密码。
        self.__from = smtp_user       # 发送者的QQ邮箱

    def send_email(self, to, msg_title, msg_context) :
        msg = MIMEText(msg_context, 'plain', 'utf-8')
        msg['From'] = self.__from
        msg['Subject'] = msg_title
        msg['To'] = to
        result = True
        try:
            smtp = smtplib.SMTP_SSL(self.__smtp_host, self.__smtp_port)
            smtp.login(self.__smtp_user, self.__smtp_auth)
            smtp.sendmail(self.__from, to.split(','), msg.as_string())
            smtp.quit()
        except smtplib.SMTPException :
            result = False
            print("fail to send email from {} to {}".format(self.__from, to))
        finally:
            return result


if __name__ == '__main__':
    email = Email()
    email.send_email('email_one@163.com, email_two@qq.com', '这是标题', '这是正文')
    
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐