热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用QQ邮箱发送email(Python【支持中文】)

实际开发过程中使用到邮箱的概率很高,那么如何借助python使用qq邮箱发送邮件呢?代码很简单,短短几行代码就可以实现这个功能。使用到的模

实际开发过程中使用到邮箱的概率很高,那么如何借助python使用qq邮箱发送邮件呢?

代码很简单,短短几行代码就可以实现这个功能。
使用到的模块有smtplib和email这个两个模块,关于这两个模块的方法就不多说了。
我们先说说网上常用的使用这那两个模块发送邮件的方法
代码如下:

import smtplib
from email.mime.text import MIMEText
from email.header import Headerdef SendEmail(fromAdd, toAdd, subject, attachfile, htmlText):strFrom = fromAdd;strTo = toAdd;msg =MIMEText(htmlText,'plain','utf-8');msg['Content-Type'] = 'Text/HTML';msg['Subject'] = Header(subject,'utf-8').encode();msg['To'] = strTo;msg['From'] = strFrom;smtp = smtplib.SMTP('smtp.qq.com');smtp.login('501257367@qq.com','password');try:smtp.sendmail(strFrom,strTo,msg.as_string());finally:smtp.close;if __name__ == "__main__":SendEmail("501257367@qq.com","501257367@qq.com","主题","你好","你好,世界!world!");


运行结果:

smtplib.SMTPAuthenticationError: (530, 'Error:A secure connectionis requiered(suchas ssl).More information at http://service.mail.qq.com/cgi-bin/help?id=28')

如果发送给多人,这么写:

import smtplib
from email.mime.text import MIMEText
from email.header import HeadermultiPersion = [33333@qq.com, 666666@qq.com, 888888@qq.com]def SendEmail(fromAdd, toAdd, subject, attachfile, htmlText):strFrom = fromAdd;strTo = toAdd;msg =MIMEText(

htmlText

,'html','utf-8');msg['Content-Type'] = 'Text/HTML';msg['Subject'] = Header(subject,'utf-8').encode();msg['To'] = strTo;msg['From'] = strFrom;smtp = smtplib.SMTP('smtp.qq.com');smtp.login('422700@qq.com','password');try:smtp.sendmail(strFrom,strTo,msg.as_string());finally:smtp.close;if __name__ == "__main__":SendEmail("501257367@qq.com", multiPersion,"主题","你好","你好,世界!world!");






这样的报错,需要一个安全的连接,例如SSL,因此接下来我们会使用SSL的方式去登录,但是在那之前,我们需要做一些准备,打开qq邮箱,点击设置->
账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启IMAP/SMTP服务,然后根据要求使用手机发送到指定号码,获取授权码,
这个授权码就是你接下来登录要使用的密码,配置完成,代码如下:

##coding: utf-8import smtplib
from email.mime.text import MIMEText
from email.header import Header_user = "422700@qq.com"
_pwd = "xxxxxxxxxxxxxxx"
_to = "422700@qq.com"msg = MIMEText("发给大兄弟的python自动发的邮件!",'plain','utf-8')
msg["Subject"] = Header("Python中文邮件测试!",'utf-8').encode()
msg["From"] = _user
msg["To"] = _totry:s = smtplib.SMTP_SSL("smtp.qq.com", 465)s.login(_user, _pwd)s.sendmail(_user, _to, msg.as_string())s.quit()print "Success!"
except smtplib.SMTPException,e:print "Falied,%s"%e




运行结果如下:

大功告成!



推荐阅读
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了Java中Hashtable的clear()方法,该方法用于清除和移除指定Hashtable中的所有键。通过示例程序演示了clear()方法的使用。 ... [详细]
author-avatar
dengyuanc_928
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有