• Python发送邮件


    想实现发送邮件需要经过以下几步:
    1、登录邮件服务器
    2、构造符合邮件协议规则要求的邮件内容
    3、发送

    Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件,它对smtp协议进行了简单的封装。

    这里我们用qq邮箱为例,并且自己是可以给自己发邮件的。
    在开始前我们先做准备工作:
    登录qq邮箱,后点击“设置”
    在这里插入图片描述
    点击“账户”
    在这里插入图片描述
    确保前两项已开启,然后点击生成授权码。
    因为我们网页登录时的密码是不可以用来python上使用;qq为了安全,我们平常用网页或者qq官方的客户端可以用我们的qq密码登录,但是第三方(比如python)是不可以登录的。
    所以要生成第三方授权码。
    在这里插入图片描述

    在这里插入图片描述

    代码

    import smtplib
    from email.mime.text import MIMEText  # 邮件正文
    from email.header import Header  # 邮件头
    
    # 登录邮件服务器
    smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人的SMTP服务器,端口号25
    smtp_obj.login("你的qq账号", 'admc********')  # 括号中的内容分别是发件人邮箱账号、授权码
    smtp_obj.set_debuglevel(1)  # 显示调试信息,可以不用写
    
    # 设置邮件头信息
    msg = MIMEText("测试用Python发送email。", "plain", "utf-8")  # 正文内容
    msg['From'] = Header("小天天", 'utf-8')  # 发件人名字
    msg["To"] = Header("有缘人", "UTF-8")  # 接收者名字
    msg["Subject"] = Header('用Python发送邮件2022', 'utf-8')  # 主题
    
    # 发送
    smtp_obj.sendmail('发送人邮箱', ['接收人邮箱'], msg.as_string())
    #第一个是发送人邮箱;第二个是数组,说明可以给多个人发送;msg就是刚刚写的发送内容。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    运行代码
    在这里插入图片描述
    细节:SMTP使用是25端口,SSL使用的是456端口;SMTP是明文发送,SSL是加密发送

    发送html格式的内容

    主要代码和上面基本一样,只是将文本改成html的代码内容而已

    import smtplib
    from email.mime.text import MIMEText  # 邮件正文
    from email.header import Header  # 邮件头
    
    # 登录邮件服务器
    smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人的SMTP服务器,端口号25
    smtp_obj.login("你的qq账号", 'admc********') # 括号中的内容分别是发件人邮箱账号、邮箱密码
    smtp_obj.set_debuglevel(1)  # 显示调试信息,可以不用写
    
    # 设置邮件头信息
    # HTML
    msg_body='''
        

    python发送html格式的邮件

    测试用HTML格式发送邮件

    '''
    msg = MIMEText(msg_body, "html", "utf-8") # 将plain改成html msg['From'] = Header("小天天", 'utf-8') # 发件人名字 msg["To"] = Header("有缘人", "UTF-8") # 接收者名字 msg["Subject"] = Header('用Python发送邮件2022', 'utf-8') # 主题 # 发送 smtp_obj.sendmail('发送人邮箱', ['接收人邮箱'], msg.as_string())
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这里插入图片描述

  • 相关阅读:
    第三章 内存管理 十二、请求分页管理方式
    Biome-BGC生态系统模型教程
    【JavaSE】类和对象(下篇)
    figma拉伸画板,导致元素变形,一键搞定
    刀具磨损状态识别(Python代码,MSCNN_LSTM_Attention模型,初期磨损、正常磨损和急剧磨损分类,解压缩直接运行)
    KMP总结
    计算机毕设(附源码)JAVA-SSM家居购物系统
    MySQL高可用搭建方案之(MMM)
    五万字 | 深入理解Linux内存管理
    HTTP 介绍
  • 原文地址:https://blog.csdn.net/gushendezhufu/article/details/127587989