python3、利用SMTP实现自动发送邮件!

  首先声明,这个是偶然从别人的博客里发现的,觉得比较有趣,就自身亲自尝试了一番,在此做了点儿比较详细的整理和一点点小小的优化!

  步骤:

    1.发送QQ邮件,首先必须知道QQ邮箱的SMTP服务器!

    

python邮件群发机 python自动群发邮件_发送邮件

    2.发送邮件之前,必须开启qq邮箱的smtp服务

      设置路径:设置--账户--开启截图上的服务--保存更改

    

python邮件群发机 python自动群发邮件_服务器_02

    3.Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件

      

#   导入smtplib模块,smtplib负责发送邮件
import smtplib
#   导入email模块,email负责构造邮件
from email.mime.text import MIMEText

#   创建类
class SendEmil:
global send_user
global email_host
global password
#   password为相对应的16位授权码,开启服务时收到的16位授权码
    password = 'bkdzegokffjmhbei'
    #   email的主机地址
    email_host = 'smtp.qq.com'
    #   由谁发送的,发送者
    send_user = '145XXXX708@qq.com'

    def send_email(self,user_list,sub,content):
        user = "shape" + "<" + send_user + ">"
        #   构造MIMEText对象,第一个参数为邮件正文,第二个参数为MIME的图标类型,
        #   plain表示纯文本,最终的MIME就是'text/plain';第三个参数使用编码utf-8保证多语言兼容性
        message = MIMEText(content,_subtype='plain',_charset='utf-8')
#   发送的邮件需要添加头部信息,包含发送者、接收者、邮件主题等信息;
        #   邮件主题
        message['Subject'] = sub
#   发送者
        message['From'] = user
#   接收者
        message['To'] = ";".join(user_list)
#   安全邮件,通过SSL发送,创建SSL安全连接
        server = smtplib.SMTP_SSL()
#   启用SSL连接,端口一般是465
        server.connect(email_host,465)
#   login()登陆SMTP服务器
        server.login(send_user,password)
#   sendmail()发邮件,可一次发给多人,此处用列表,邮件正文为str,
        #   as_string()把MIMEText对象变成str
        server.sendmail(user,user_list,message.as_string())
#   关闭SMTP服务器连接
        server.close()

#   在当前脚本下运行
if __name__ == '__main__':
#   实例化类
    send = SendEmil()
#   要发送的对象,可为多个
    user_list = ['39XXXX259@qq.com']
#   邮件标题
    sub = '测试邮件'
    #   邮件内容
    content = '哈哈哈哈哈'
    #   发送
    send.send_email(user_list,sub,content)
print("发送成功!")