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 相关文章推荐
python字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python自定义时钟类、定时任务类
Feb 22 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
python 初始化一个定长的数组实例
Dec 02 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
Python urllib库如何添加headers过程解析
Oct 05 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 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
VOLVO车载收音机
2021/03/02 无线电
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
Unicode和Python的中文处理
2017/03/19 Python
python实现二叉树的遍历
2017/12/11 Python
python实现用户答题功能
2018/01/17 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Django CBV类的用法详解
2019/07/26 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
浅析Python 责任链设计模式
2020/09/11 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
计算机专业推荐信范文
2013/11/27 职场文书
个人贷款承诺书
2014/03/28 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
北京奥运会口号
2014/06/21 职场文书
公司委托书格式
2014/08/01 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
Python实现仓库管理系统
2022/05/30 Python