Python发送邮件功能示例【使用QQ邮箱】


Posted in Python onDecember 04, 2018

本文实例讲述了Python发送邮件功能。分享给大家供大家参考,具体如下:

这里以QQ邮箱为例说明

登录邮箱点账号

Python发送邮件功能示例【使用QQ邮箱】

开启smtp

Python发送邮件功能示例【使用QQ邮箱】

开启时会要求你发送一条短信,发送完成后点已发送。

就有授权码了

Python发送邮件功能示例【使用QQ邮箱】

代码如下,只需更改发件人、收件人等信息即可

# encoding: utf-8
import logging
import smtplib
from email.mime.text import MIMEText
import email.utils
from datetime import datetime
_logger = logging.getLogger('utils.mailclient')
class MailClient(object):
  def __init__(self, host, port, user, pwd=''):
    self._host = host
    self._port = port
    self._user = user
    self._pwd = pwd
    self._smtp_server = None
    self._debug = False
    self._keepalive = True
  def set_keepalive(self, keepalive):
    self._keepalive = keepalive
  def set_debug(self, debug):
    self._debug = debug
    if self._smtp_server is not None:
      self._smtp_server.set_debuglevel(self._debug)
  def _connect(self):
    if self._smtp_server is None:
      _smtp_server = smtplib.SMTP(self._host, self._port)
      _smtp_server.ehlo()
      _smtp_server.starttls()
      _smtp_server.set_debuglevel(self._debug)
      if self._pwd:
        _smtp_server.login(self._user, self._pwd)
      self._smtp_server = _smtp_server
    return self._smtp_server
  def _dispose(self):
    if self._smtp_server is not None:
      self._smtp_server.quit()
      self._smtp_server = None
  def send(self, to_addrs, subject, content, isdispose=True):
    _smtp_server = self._connect()
    if not isinstance(to_addrs, list):
      to_addrs = [to_addrs]
    _msg = MIMEText(content, 'html', 'utf-8')
    _msg['Subject'] = subject
    _msg['From'] = self._user
    _msg['To'] = '; '.join(to_addrs)
    _msg['Date'] = datetime.now().strftime('%Y-%d-%m %H:%M:%S')
    _smtp_server.sendmail(self._user, to_addrs, _msg.as_string())
    isdispose and (not self._keepalive) and self._dispose()
  def send_mails(self, mails):
    _smtp_server = self._connect()
    for mail in mails:
      self._send_mail(mail.get('to'), mail.get('subject'), mail.get('content'), False)
    (not self._keepalive) and self._dispose()
  def close(self):
    self._dispose()
if __name__ == '__main__':
  logging.basicConfig(level=logging.DEBUG,
            format='%(asctime)s %(name)s %(levelname)s:%(message)s',
            datefmt='%Y-%m-%d %H:%M:%S')
  import time
  s = MailClient('smtp.qq.com', 587, '10010@qq.com', '授权码') #  注意,此处端口要用587,465端口是ssl使用的。
  s.set_keepalive(False)
  s.set_debug(True)
  st = time.time()
  s.send('收信人邮箱地址', '测试', '测试邮件 From QQ') #要发送的账号、标题、内容
  print(time.time() - st)

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
pyqt4教程之widget使用示例分享
Mar 07 Python
分享15个最受欢迎的Python开源框架
Jul 13 Python
简单介绍Python中的floor()方法
May 15 Python
python定时器(Timer)用法简单实例
Jun 04 Python
Python拼接微信好友头像大图的实现方法
Aug 01 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
django的ORM操作 增加和查询
Jul 26 Python
python打造爬虫代理池过程解析
Aug 15 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
Python函数的迭代器与生成器的示例代码
Jun 18 Python
python下载的库包存放路径
Jul 27 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 #Python
uwsgi+nginx部署Django项目操作示例
Dec 04 #Python
解决python中无法自动补全代码的问题
Dec 04 #Python
Django框架实现的简单分页功能示例
Dec 04 #Python
Django开发的简易留言板案例详解
Dec 04 #Python
对python的bytes类型数据split分割切片方法
Dec 04 #Python
Python 从相对路径下import的方法
Dec 04 #Python
You might like
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
JsChart组件使用详解
2018/03/04 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
简单上手Python中装饰器的使用
2015/07/12 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
python中xlutils库用法浅析
2020/12/29 Python
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
岗位职责范本
2013/11/23 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
党课培训主持词
2014/04/01 职场文书
广告宣传策划方案
2014/05/21 职场文书
天猫活动策划方案
2014/08/21 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
学习与创新自我评价
2015/03/09 职场文书
圆明园观后感
2015/06/03 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Pytorch中的数据集划分&正则化方法
2021/05/27 Python