一、如何发一封简单的邮件
    步骤:构造邮件(email)- 发送邮件(smtplib)-发送成功

    二、smtplib模块(如下)
    import smtplib

    server = smtplib.SMTP()
    server.connect(host, port)
    server.login(username, password)
    server.sendmail(sender, to_addr, msg.as_string())
    server.quit()

    解析:
    (1)第一行,是引入smtplib模块

    (2)第三行,server是一个变量,smtplib.SMTP()是变量server的值,SMTP 是smtpli把模块中的一个类

    (3)SMTP (Simple Mail Transfer Protocol)翻译过来是“简单邮件传输协议”的意思,SMTP 协议是由源服务器到目的地服务器传送邮件的一组规则

    (4)第四行代码,连接(connect)指定的服务器,host是指定连接的邮箱服务器;port 是端口,默认端口号是25
    *如何查看自己的端口号?
    答:登录邮箱后,在【设置-选项-POP和IMAP】查找相关的端口号

    (5)若使用的是QQ邮箱,SMTP服务器地址是:smtp.qq.com,端口是465或587;QQ 邮箱采用的加密方式是SSL
    server = smtplib.SMTP_SSL()
    #如果端口是用SSL加密,请这样写代码。其中server是变量名
    server.connect(‘smtp.qq.com’, 465)
    #如果出现编码错误UnicodeDecodeError,你可以这样写:server.connect(‘smtp.qq.com’, 465,’utf-8’)

    (6)第五行代码,login是登录的意思,也就是登录你指定的服务器用的,需要输入两个参数:登录邮箱和授权

    (7)第六行代码sendmail是“发送邮件”的意思,是发送邮件用的,sendmail()方法需要三个参数:发件人,收件人和邮件内容
    server.sendmail(from_addr, to_addr, msg.as_string())
    #from_addr:邮件发送地址,就是上面的username
    #to_addr:邮件收件人地址
    #msg.as_string():为一个字符串类型

    (8)最后一行代码,quit是“退出”的意思,就是退出服务器

    二、eamil模块(如下)
    from email.mime.text import MIMEText
    from email.mime.image import MIMEImage
    from email.mime.multipart import MIMEMultipart

    (1)MIMEText()方法需要输入三个参数:文本内容,文本类型和文本编码
    MIMEText(msg,type,chartset)
    # msg:文本内容,可自定义
    # type:文本类型,默认为plain(纯文本)
    # chartset:文本编码,中文为“utf-8”

    三、梳理发邮件的代码结构
    (1)导入模块:
    # smtplib 用于邮件的发信动作
    import smtplib

    from email.mime.text import MIMEText
    # email 用于构建邮件内容

    (2)定义变量:
    # 发信方的信息:发信邮箱,QQ 邮箱授权码
    from_addr = ‘xxx@qq.com’
    password = ‘你的授权码数字’

    # 收信方邮箱
    to_addr = ‘xxx@qq.com’

    # 发信服务器
    smtp_server = ‘smtp.qq.com’

    # 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
    msg = MIMEText(‘send by python’,’plain’,’utf-8’)

    (3)使用方法:
    # 开启发信服务,这里使用的是加密传输
    server = smtplib.SMTP_SSL()
    server.connect(smtp_server,465)

    # 登录发信邮箱
    server.login(from_addr, password)

    # 发送邮件
    server.sendmail(from_addr, to_addr, msg.as_string())

    # 关闭服务器
    server.quit()