zoukankan      html  css  js  c++  java
  • Python 通过 SMTP 发送邮件

    Python版本:Python3.5.2

    简介

    SMTP是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件。

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

    我使用的是 QQ 邮箱来完成本次实验,首先应该配置好自己的邮箱以启用 SMTP 功能,具体步骤如下:

    登录到 QQ 邮箱的首页,找到设置功能:

    进入到设置,切换到帐户标签页:

    下拉找到如下选项,并启用 SMTP 功能:

    启用成功后,会生成一个授权码,用于登录 SMTP 服务器。这个授权码不唯一,忘记的话可以点击再次生成。

    实验源码如下

    __Author__ = "Lance#"
    
    # -*- coding = utf-8 -*-
    
    from email import encoders
    from email.header import Header
    from email.mime.text import MIMEText
    from email.utils import parseaddr, formataddr
    
    import smtplib
    
    def _format_addr(s):
        name, addr = parseaddr(s)
        return formataddr((Header(name, 'utf-8').encode(), addr))
    
    from_addr = 'xxx@qq.com'
    password = '你的授权码'
    to_addr = 'xxx@qq.com'
    smtp_server = 'smtp.qq.com'
    
    #要发送的消息
    SendMsg = 'This is SMTP test.'
    
    #构造一个 MIMEText 对象
    msg = MIMEText(SendMsg, 'plain', 'utf-8')
    
    #依次填充对象的各个选项
    msg['From'] = _format_addr('Python <%s>' % from_addr)
    msg['To'] = _format_addr('User <%s>' % to_addr)
    msg['Subject'] = Header('This is SMTP test.', 'utf-8').encode()
    
    #构造 SMTP 服务器,QQ 邮箱的 SMTP 端口为 465 且为 SSL 加密协议
    server = smtplib.SMTP_SSL(smtp_server, 465)
    
    #启用该选项,可以打印出和SMTP服务器交互的所有信息
    server.set_debuglevel(1)
    server.login(from_addr, password)
    
    #发送邮件, 此处的 to_addr 可以是一个 list,可以给多人发送
    server.sendmail(from_addr, [to_addr], msg.as_string())
    
    #退出 SMTP 服务器
    server.quit()
    

    接收邮件的邮箱可以设置和发送方地址一样,这样程序正常运行结束后,自己的邮箱就可以收到刚刚发送过的邮件。

  • 相关阅读:
    PHP做Web开发的MVC框架(Smarty使用说明 )
    PHP + Smarty + html5 构建Wap应用
    HTML5游戏中动画帧的概念理解
    [转]jQuery选择器 (详解)
    2014马年应该有怎么样的学习方式和思考原则
    html5视频播放解决方案
    html5学习摘要
    sqlserver2008行锁
    关于一些url中传递参数有空格问题
    MongoDB和Redis区别
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8971504.html
Copyright © 2011-2022 走看看