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()
接收邮件的邮箱可以设置和发送方地址一样,这样程序正常运行结束后,自己的邮箱就可以收到刚刚发送过的邮件。
Python 通过 SMTP 发送邮件的更多相关文章
- python通过SMTP发送邮件失败,报错505/535
python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission') 我们使用pyth ...
- Python使用SMTP发送邮件[HTML格式、送带附件]
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...
- python基于SMTP发送邮件
import smtplib from email.header import Header from email.mime.text import MIMEText ''' SMTP是发送邮件的协议 ...
- Python 用SMTP发送邮件
一.简介 上面介绍了传统邮件的生成和解析,这些都是non-internet,也就是不需要网络就可一完成的.那么当生成了邮件,下一步就是发送了,本文就讲解利用SMTP协议发送邮件. 正如SMTP(Sim ...
- Python使用SMTP发送邮件(163,yeah等网易邮箱已测试可以)
#! /usr/bin/env python# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextmailt ...
- python利用smtp发送邮件
#!/usr/bin/env python # -*- encoding: utf-8 -*- # author:IversOn5 import requests import json import ...
- 使用Python通过SMTP发送邮件
有些业务可能由于各种各样的原因并不适用于Zabbix监控,这时如果要做到系统出问题能立即发送邮件,就需要自己来写监控脚本了,出问题要实时通过邮件报警,以下案例使用Python脚本实现通过SMTP协议发 ...
- python使用SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/IP协议簇,它 ...
- python 利用smtp发送邮件,html格式
def send_mail(to_list, sub, context):#sentmail to the maillist ''' to_list: 发送给谁 sub: 主题 context: 内容 ...
随机推荐
- ABAP接口之Http发送json报文
abap 调用http 发送 json 测试函数 SE11创建结构:zsmlscpnotice SE37创建函数:zqb_test_http_fuc1 FUNCTION zqb_test_http_f ...
- [f]聊天的时间格式化
代码如下: 参数: t: 时间戳, type:返回格式(1:IM界面,其他:会话列表) function formartTime(t, type) { var oldtime = new Date(t ...
- 感知机、logistic回归 损失函数对比探讨
感知机.logistic回归 损失函数对比探讨 感知机 假如数据集是线性可分的,感知机学习的目标是求得一个能够将正负样本完全分开的分隔超平面 \(wx+b=0\) .其学习策略为,定义(经验)损失函数 ...
- Redhat 6.7 x64升级SSH到OpenSSH_7.4p1完整文档
原文链接:https://www.cnblogs.com/xshrim/p/6472679.html 导语 Redhat企业级系统的6.7版自带SSH版本为OpenSSH_5.3p1, 基于审计和安全 ...
- C++反汇编(一)
对象/结构体 对象的大小只包括数据成员,成员函数属于执行代码. 对象长度 = sizeof(数据成员1) + sizeof(数据成员2) + ...... + sizeof(数据成员n) 特殊情况公式 ...
- UnityTips:使用反射调用内部方法拓展编辑器
大家都知道Unity是一个C/C++的游戏引擎,C#只是Unity提供的脚本层.因此大部分功能都是通过C#来调用底层的C++代码的.而一些朋友可能不知道的是,其实Unity的C#代码中也有很多方法是我 ...
- Akka-CQRS(4)- CQRS Writer Actor 示范
我觉着,CQRS的写部分最核心.最复杂的部分应该是Writer-Actor了.其它的监管(supervising).分片部署等都比较规范,没太多的变动.几乎Writer-Actor所有的业务逻辑都在R ...
- C#通过COM组件操作IE浏览器(一):打开浏览器跳转到指定网站
简介Internet Explorer对象模型 1.属性 属性 类型 描述 Application Object 返回对Internet Explorer对象的引用. Busy Boolean 返回一 ...
- MySQL-5.7.19 在阿里云 CentOS-7.0 上的安装
工具准备 查看系统是否安装了yum工具: [root@wangbo srv]# rpm -qa | grep yum yum-metadata-parser-1.1.4-10.el7.x86_64 y ...
- 移动端点击事件300ms延迟问题解决方案——fastclick.js
移动端点击事件300ms延迟的问题由来已久,如下截图 下面截图来自原文:https://www.jianshu.com/p/6e2b68a93c88 网上关于300ms延迟问题的解决方法,大致分为 3 ...