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()

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

Python 通过 SMTP 发送邮件的更多相关文章

  1. python通过SMTP发送邮件失败,报错505/535

    python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')    我们使用pyth ...

  2. Python使用SMTP发送邮件[HTML格式、送带附件]

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...

  3. python基于SMTP发送邮件

    import smtplib from email.header import Header from email.mime.text import MIMEText ''' SMTP是发送邮件的协议 ...

  4. Python 用SMTP发送邮件

    一.简介 上面介绍了传统邮件的生成和解析,这些都是non-internet,也就是不需要网络就可一完成的.那么当生成了邮件,下一步就是发送了,本文就讲解利用SMTP协议发送邮件. 正如SMTP(Sim ...

  5. Python使用SMTP发送邮件(163,yeah等网易邮箱已测试可以)

    #! /usr/bin/env python# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextmailt ...

  6. python利用smtp发送邮件

    #!/usr/bin/env python # -*- encoding: utf-8 -*- # author:IversOn5 import requests import json import ...

  7. 使用Python通过SMTP发送邮件

    有些业务可能由于各种各样的原因并不适用于Zabbix监控,这时如果要做到系统出问题能立即发送邮件,就需要自己来写监控脚本了,出问题要实时通过邮件报警,以下案例使用Python脚本实现通过SMTP协议发 ...

  8. python使用SMTP发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/IP协议簇,它 ...

  9. python 利用smtp发送邮件,html格式

    def send_mail(to_list, sub, context):#sentmail to the maillist ''' to_list: 发送给谁 sub: 主题 context: 内容 ...

随机推荐

  1. c语言结构体定义的几种形式

    转自https://blog.csdn.net/ziguo2010/article/details/79897327 1.最常用定义方式:定义结构体data,此时结构体相当于一个类型,比如int,如需 ...

  2. expdp错误案例

    转自:https://www.cnblogs.com/kerrycode/p/3960328.html Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一 ...

  3. 20145232韩文浩《网络对抗》逆向及BOF基础实践

    实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShe ...

  4. qscoj 喵哈哈村的打印机游戏 区间dp

    点这里去看题 区间dp ,dp[l][r][d]代表从l到r的区间底色为d,具体看代码 第一次见到区间dp...两个小时对着敲了五遍终于自己敲懂了一遍ac #include<bits/stdc+ ...

  5. WSGI and Paste学习笔记

    The Problem Lots of web frameworks Zope, Quixote, Webware, SkunkWeb and Twisted Web etc Applications ...

  6. Web前端-Vue.js必备框架(二)

    Web前端-Vue.js必备框架(二) vue调式工具vue-devtools 过滤器:vue.js允许你自定义过滤器,可被用作一些常见的文本格式化. mustache插值和v-bind表达式. vu ...

  7. C语言小笔记

    头文件的书写 头文件实现函数声明,在使用模板后可以实现一个C文件中即使重复包含某个头文件,在系统中用于只会确认为一个包含 头文件包含可以理解为将头文件内容替换#include“...”行 模板(don ...

  8. Axure安装、破解、汉化全套

    最近公司准备使用敏捷开发流程,然后刚好需要Axure这个软件,就去找了些资源分享给大家,希望对大家有所帮助: 全套安装,破解,汉化下载地址: 链接: https://pan.baidu.com/s/1 ...

  9. iview导航菜单updateOpened和updateActiveName的使用

    先看官方文档: iview导航菜单 这里主要遇到的问题有两个: 1. 点击回到首页(B按钮)时需要取消选中当前选中的菜单项(全部不选中),这里用到的是 updateActiveName方法 2. 点击 ...

  10. 如何将云原生工作负载映射到 Kubernetes 中的控制器

    作者:Janakiram MSV 译者:殷龙飞 原文地址:https://thenewstack.io/how-to-map-cloud-native-workloads-to-kubernetes- ...