杂项之使用qq邮箱发送邮件

本节内容

  1. 特殊设置
  2. 测试代码

1. 特殊设置

之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏效了。。。于是上网查了查,QQ对这方面做了一些限制,必须使用授权码才能登陆邮箱。官方链接在这:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
按照上面的官方文档配置好之后就可以使用QQ邮箱发送邮件了,下面是使用方法。

2. 测试代码

#!/usr/bin/env python
# encoding:utf-8
# __author__: send_email
# date: 2016/12/19 11:50
# blog: http://huxianglin.cnblogs.com/ http://xianglinhu.blog.51cto.com/ from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL
import random class Send_email:
def __init__(self,mail_host="smtp.qq.com",mail_user="123456789@qq.com # 这里填的是你的发件箱的邮箱名",mail_pass="这里填的不是邮箱密码,而是开启服务后的16位授权码"):
self.mail_host=mail_host
self.mail_user=mail_user
self.mail_pass=mail_pass def send_mail(self,email):
random_str="".join([str(random.randint(0,9)) for i in range(6)]) # 生成6位的0-9的随机数字,并转换成字符串
mailInfo = {
"from":self.mail_user, #"发信人用户名@qq.com",
"to": email, #"收信人用户名@qq.com",
"hostname":"smtp.qq.com", #qq的smtp服务器
"username":self.mail_user, #"账户名",
"password":self.mail_pass, #"密码",
"mailsubject":"注册验证码", #"邮件标题",
"mailtext":random_str,
"mailencoding":"utf-8"
} msg=MIMEText(mailInfo["mailtext"]) # 里面放需要发送的内容 #,"text",mailInfo["mailencoding"] # 这些加上无法收到验证码
msg['Subject']=Header(mailInfo["mailsubject"],mailInfo["mailencoding"]) # 邮件标题内容
msg["from"] = mailInfo["from"] # 发件人
msg["to"] = mailInfo["to"] # 收件人
# server = smtplib.SMTP(self.mail_host, 25) # 这一行是以前的QQ邮箱可以直接使用smtp发送邮件
server = SMTP_SSL(mailInfo["hostname"]) # 现在的QQ邮箱必须要SSL支持才能发送邮箱,并且不能填邮箱密码,需要在邮箱设置中打开支持POP3/SMTP功能,并获取到16位的授权码
server.set_debuglevel(1) # 设置debug等级 如果不想看详细日志,可以把日志级别调高一点,不需要看日志的话把这行删除就行
server.ehlo(mailInfo["hostname"]) # 设置smtp邮箱服务器地址
server.login(self.mail_user, self.mail_pass) # 通过用户名和设置的授权码登录
server.sendmail(mailInfo["from"], mailInfo["to"], msg.as_string()) # 将打包的信息发送给对方,可以将对方地址设置成一个列表或元祖,相当于群发邮件
server.quit() # 退出发送邮件 if __name__ == "__main__":
obj=Send_email()
obj.send_mail("987654321@qq.com")

杂项之使用qq邮箱发送邮件的更多相关文章

  1. ecshop QQ邮箱发送邮件服务器配置

    ecshop QQ邮箱发送邮件服务器配置 1.邮件服务:采用其他的SMTP服务 2.邮件服务器是否要求加密连接(SSL): 是 此项设置需要php支持openSSL模块 开启方法: a.php.ini ...

  2. SpringBoot使用qq邮箱发送邮件

    最近公司要做一个邮箱注册和重置密码的功能,因为之前就做过,但是不是Springboot项目,所以相对来说还是比较容易的,在这里记录一下. 一.引用Maven依赖 这里使用spring自带的邮件jar包 ...

  3. python qq邮箱发送邮件

    使用qq发送邮件 # coding=utf8 """ qq邮箱发送邮件 """ import sys reload(sys) sys.set ...

  4. python3通过qq邮箱发送邮件

    python3通过qq邮箱发送邮件 0.了解qq邮箱的SMTP QQ邮箱 POP3 和 SMTP 服务器地址设置如下: 邮箱 POP3服务器(端口995) SMTP服务器(端口465或587) qq. ...

  5. 基于java mail实现简单的QQ邮箱发送邮件

    刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...

  6. 使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response

    使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.Messagin ...

  7. legend3---lavarel中使用qq邮箱发送邮件

    legend3---lavarel中使用qq邮箱发送邮件 一.总结 一句话总结: 第一步:配置邮箱做服务器,比如qq邮箱,网易163邮箱 第二步:配置lavarel的配置文件 第三部:写邮件发送代码就 ...

  8. QQ邮箱发送邮件,出现mail from address must be same as authorization user错误

    之前做的一个系统,有个发送邮件的功能,一直能正常使用,今天同事说QQ邮箱发送不了. 立马着手调试,发现服务器一直出现“mail from address must be same as authori ...

  9. MVC模式下向qq邮箱发送邮件

    将已经保存在数据库中的密码通过邮件发送到qq邮箱中.用的ssm框架,其中的config文件要先配置好. 用到的jar包有gson-2.2.1.jar,gson.jar,mail.jar,activat ...

随机推荐

  1. 打造android偷懒神器———ListView的万能适配器

    如果你去做任何一个项目,我相信你都会跟我有一样的经历,最最普遍的就是列表显示ListView,当然,写N个自定义的适配器也是情理之中.虽说程序员本身就是搬砖,做这些枯燥无味的重复的事情也是理所当然,但 ...

  2. 我是如何进行Spring MVC文档翻译项目的环境搭建、项目管理及自动化构建工作的

    感兴趣的同学可以关注这个翻译项目 . 我的博客原文 和 我的Github 前段时间翻译的Spring MVC官方文档完成了第一稿,相关的文章和仓库可以点击以下链接.这篇文章,主要是总结一下这个翻译项目 ...

  3. C#写文本日志帮助类(支持多线程)改进版(不适用于ASP.NET程序)

    由于iis的自动回收机制,不适用于ASP.NET程序 代码: using System; using System.Collections.Concurrent; using System.Confi ...

  4. C#语音朗读文本 — TTS的实现

    TTS, Text To Speech的缩写,是使用语音朗读文本的技术.目前,在国内应用较多的是排队叫号系统 Windows 平台的TTS,通常使用的是微软自带的 Speech API. Window ...

  5. java多线程实现方式

    一.什么是线程? 线程:程序中一个单一的顺序控制流程.进程内一个相对独立的.可调度的执行单元,是系统独立调度和分派CPU的基本单位. 多线程:单个程序中同时运行多个线程完成不同的工作,称为多线程. 特 ...

  6. Java中文字符处理的四大迷题

    虽然计算机对英文字符的支持非常不错,我们也恨不得写的程序只会处理英文的数据,但是昨为中国人,无可避免地要处理一些中文字符.当很简单的一件事情,遇到了中文,一切就不同了!本文就会讲述实际生产环境中遇到的 ...

  7. react-echarts之折线图的显示

    react中想要实现折线图和饼图的功能,需要引入react-echarts包,然后再实现折线图的功能.我这里引用的版本是:0.1.1.其他的写法参echarts官网即可.下面详细讲解的是我在react ...

  8. CSS3_01之选择器、Hack

    1.兄弟选择器:①相邻兄弟选择器:元素的后一个兄弟元素,选择器1+选择器2:②通用兄弟选择器:元素后的所有兄弟元素,选择器1~选择器2: 2.属性选择器:attr表示属性名称,elem表示元素名:①[ ...

  9. GridView的各种属性

    <GridView android:id="@+id/movie_list" android:layout_width="906dp" android:l ...

  10. unable to boot the simulator,无法启动模拟器已解决

    突然模拟器报错:unable to boot the simulator(无法启动模拟器) 试了好几种解决办法,删除所有的模拟器重启以后再添加,删除钥匙串登陆中的证书,重新安装Xcode都不行 最后通 ...