python3实现163邮箱SMTP发送邮件


Posted in Python onMay 22, 2018

SMTP协议

首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件,而大多数的邮件发送服务器都是使用SMTP协议。SMTP协议的默认TCP端口号是25。

发送邮件之前的配置:

上面说了是使用SMTP协议发送的邮件,所以需要先查看你的发件人邮箱是否有开启SMTP协议,如没有,则需要开启,我测试使用的是163.com的邮箱作为发信人邮箱,在设置中开启SMTP协议如下图所示。

python3实现163邮箱SMTP发送邮件

  测试的前提是你需要开通客户端授权,开通后会让你设置密码,那个密码要记好,下面的passwd接收的是授权密码而不是邮箱密码!否则会出现下图所示的错误提示:

python3实现163邮箱SMTP发送邮件

小栗子:

import smtplib 
from email.header import Header 
from email.mime.text import MIMEText 
 
# 第三方 SMTP 服务 
mail_host = "smtp.163.com" # SMTP服务器 
mail_user = "***"   # 用户名 
mail_pass = "***"  # 授权密码,非登录密码 
 
sender = ***@163.com' # 发件人邮箱(最好写全, 不然会失败) 
receivers = [***@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 
 
content = '我用Python' 
title = '人生苦短' # 邮件主题 
 
def sendEmail(): 
 
 message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码 
 message['From'] = "{}".format(sender) 
 message['To'] = ",".join(receivers) 
 message['Subject'] = title 
 
 try: 
 smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465 
 smtpObj.login(mail_user, mail_pass) # 登录验证 
 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送 
 print("mail has been send successfully.") 
 except smtplib.SMTPException as e: 
 print(e) 
 
def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content): 
 email_client = smtplib.SMTP(SMTP_host) 
 email_client.login(from_account, from_passwd) 
 # create msg 
 msg = MIMEText(content, 'plain', 'utf-8') 
 msg['Subject'] = Header(subject, 'utf-8') # subject 
 msg['From'] = from_account 
 msg['To'] = to_account 
 email_client.sendmail(from_account, to_account, msg.as_string()) 
 
 email_client.quit() 
 
if __name__ == '__main__': 
 sendEmail() 
 # receiver = '***' 
 # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)

如果测试出现报错,请看网易邮箱给出的状态码及含义。

菜鸟教程也有详细教程。

本文有参考孙华强的博客,十分感谢。

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

Python 相关文章推荐
基于进程内通讯的python聊天室实现方法
Jun 28 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
Django中的静态文件管理过程解析
Aug 01 Python
python中eval与int的区别浅析
Aug 11 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
python 实现任务管理清单案例
Apr 25 Python
谈谈python垃圾回收机制
Sep 27 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 #Python
Django使用HttpResponse返回图片并显示的方法
May 22 #Python
python实现最长公共子序列
May 22 #Python
使用python存储网页上的图片实例
May 22 #Python
python3模块smtplib实现发送邮件功能
May 22 #Python
Python3.x爬虫下载网页图片的实例讲解
May 22 #Python
python3使用smtplib实现发送邮件功能
May 22 #Python
You might like
php中的时间处理
2006/10/09 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
进一步理解Python中的函数编程
2015/04/13 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python实现图片识别汽车功能
2018/11/30 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
.NET程序员的几道面试题
2012/06/01 面试题
技校教师求职简历的自我评价
2013/10/20 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
骨干教师个人总结
2015/02/11 职场文书
员工自我工作评价
2015/03/06 职场文书
人生遥控器观后感
2015/06/11 职场文书
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
排查Tomcat进程假死的问题
2022/05/06 Servers