python3使用SMTP发送简单文本邮件
时间:2019-04-20
本文章向大家介绍python3使用SMTP发送简单文本邮件,主要包括python3使用SMTP发送简单文本邮件使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、设置开启SMTP服务并获取授权码
0.如果使用第三方邮件服务器SMTP服务来发送邮件,首先要在邮箱设置里面开启POP3/SMTP/IMAP服务,下面以163邮箱为例,其它邮箱设置方法相同
163邮箱SMTP服务器:smtp.163.com
QQ邮箱SMTP服务器:smtp.qq.com
1.首先登录自己的邮箱,找到【设置】》【POP3/SMTP/IMAP】,开启相应的服务
2.然后开启并获取客户端授权码(这里的授权码并不是登录邮箱时的密码,而是第三方邮箱服务使用的授权码)
二、使用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.发送成功之后,如果在收件人的邮箱看不到邮件,可能是被当做垃圾邮件拦截了,可以去拦截记录里面找一下
发送方发送的邮件:
接收方收到的邮件:
3.这里是发送最简单的格式的邮件的示例,正文只包含文本
还可以发送:
正文为HTML格式的邮件
包含附件的邮件(附件可以是HTML网页,TXT文本,JPG图片,以及音频、视频等)
后面继续讲
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 聊聊 Java 中 HashMap 初始化的另一种方式
- 基于 Hive 的文件格式:RCFile 简介及其应用
- MapReduce 计数器简介
- 流水线乘法器
- Hive 基础(2):库、表、字段、交互式查询的基本操作
- 玩转 Linux 之:磁盘分区、挂载知多少?
- Flume NG 简介及配置实战
- 巧用 Hive 模拟分布式 grep
- 串行乘法器
- 一例 Hive join 优化实战
- 奇数分频
- Nginx log error:client sent invalid userid cookie
- Shell 参数扩展及各类括号在 Shell 编程中的应用
- linux 系统监控、诊断工具之 IO wait
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 什么是计算机程序?操作系统、指令、进程、线程等
- Head First设计模式——状态模式
- Head First设计模式——代理模式
- [Maven]告警[WARNING] Unable to create Maven project from repository.
- Head First设计模式——复合模式
- [System.currentTimeMillis]/[Calendar.getInstance().getTimeInMillis()]/[new Date().getTime()]
- 【每日一题】32. Longest Valid Parentheses
- 面经手册 · 第3篇《HashMap核心知识,扰动函数、负载因子、扩容链表拆分深度学习(+实践验证)》
- Head First设计模式——桥接模式
- Head First设计模式——生成器模式和责任链模式
- Head First设计模式——蝇量模式和解释器模式
- 【每日一题】33. Search in Rotated Sorted Array
- 【每日一题】34. Find First and Last Position of Element in Sorted Array
- 【每日一题】35. Search Insert Position
- Head First设计模式——原型模式和访问者模式