python3使用SMTP发送简单文本邮件


Posted in Python onJune 19, 2018

一、设置开启SMTP服务并获取授权码

0.如果使用第三方邮件服务器SMTP服务来发送邮件,首先要在邮箱设置里面开启POP3/SMTP/IMAP服务,下面以163邮箱为例,其它邮箱设置方法相同

163邮箱SMTP服务器:smtp.163.com

QQ邮箱SMTP服务器:smtp.qq.com

1.首先登录自己的邮箱,找到【设置】》【POP3/SMTP/IMAP】,开启相应的服务

python3使用SMTP发送简单文本邮件

python3使用SMTP发送简单文本邮件

2.然后开启并获取客户端授权码(这里的授权码并不是登录邮箱时的密码,而是第三方邮箱服务使用的授权码)

python3使用SMTP发送简单文本邮件

二、使用Python3 发送邮件

0.使用的环境为:
Python 3.6.3 (64bit)
PyCharm 2017.3 (64bit)

1.实现代码:

import smtplib 
from email.header import Header     # 用来设置邮件头和邮件主题 
from email.mime.text import MIMEText    # 发送正文只包含简单文本的邮件,引入MIMEText即可 
 
# 发件人和收件人 
sender = 'XXXXXXXXXXX@163.com' 
receiver = 'XXXXXXXXX@qq.com' 
 
# 所使用的用来发送邮件的SMTP服务器 
smtpServer = 'smtp.163.com' 
 
# 发送邮箱的用户名和授权码(不是登录邮箱的密码) 
username = 'XXXXXXXXXXX' 
password = 'XXXXXXXX' 
 
mail_title = '这里是邮件的主题' 
mail_body = '这里是邮件的正文' 
 
# 创建一个实例 
message = MIMEText(mail_body, 'plain', 'utf-8') # 邮件正文 
message['From'] = sender       # 邮件上显示的发件人 
message['To'] = receiver       # 邮件上显示的收件人 
message['Subject'] = Header(mail_title, 'utf-8') # 邮件主题 
 
try: 
 smtp = smtplib.SMTP()       # 创建一个连接 
 smtp.connect(smtpServer)      # 连接发送邮件的服务器 
 smtp.login(username, password)    # 登录服务器 
 smtp.sendmail(sender, receiver, message.as_string()) # 填入邮件的相关信息并发送 
 print("邮件发送成功!!!") 
 smtp.quit() 
except smtplib.SMTPException: 
 print("邮件发送失败!!!")

2.发送成功之后,如果在收件人的邮箱看不到邮件,可能是被当做垃圾邮件拦截了,可以去拦截记录里面找一下
发送方发送的邮件:

python3使用SMTP发送简单文本邮件

接收方收到的邮件:

python3使用SMTP发送简单文本邮件

3.这里是发送最简单的格式的邮件的示例,正文只包含文本

还可以发送:
正文为HTML格式的邮件
包含附件的邮件(附件可以是HTML网页,TXT文本,JPG图片,以及音频、视频等)
后面继续讲

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中os操作文件及文件路径实例汇总
Jan 15 Python
win7上python2.7连接mysql数据库的方法
Jan 14 Python
简单易懂的python环境安装教程
Jul 13 Python
Python的mysql数据库的更新如何实现
Jul 31 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
Python绘图之二维图与三维图详解
Aug 04 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 #Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 #Python
python爬虫实例详解
Jun 19 #Python
Python实现的NN神经网络算法完整示例
Jun 19 #Python
python中的二维列表实例详解
Jun 19 #Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 #Python
python3实现SMTP发送邮件详细教程
Jun 19 #Python
You might like
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
php显示页码分页类的封装
2017/06/08 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
Underscore源码分析
2015/12/30 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
vue组件父子间通信详解(三)
2017/11/07 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
python简单实现刷新智联简历
2016/03/30 Python
用Eclipse写python程序
2018/02/10 Python
Linux下python制作名片示例
2018/07/20 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Python tkinter三种布局实例详解
2020/01/06 Python
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
通信生自我鉴定
2014/01/18 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
图文详解Nginx版本平滑升级方案
2021/09/15 Servers