以前也试过模拟发Email,但好像都忘了,于是按照菜鸟教程重新试了一下:

import smtplib
from email.mime.text import MIMEText
from email.header import Headersender = 'from@runoob.com'
receivers = ['???@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')   # 发送者
message['To'] =  Header("测试", 'utf-8')        # 接收者subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string())print "邮件发送成功"
except smtplib.SMTPException:print "Error: 无法发送邮件"

结果疯狂报错,说是什么ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接.

这个问题查搜索引擎发现都是说什么网络连接问题(比如防火墙、局域网等等),但其实不是关键问题,主要是这个代码有点问题。

修正后的代码是这样的:

import smtplib
from email.mime.text import MIMEText
from email.header import Headerf = open('./config.txt', 'r')# \n换行符需要删掉
sender = f.readline()[:-1]
receiver = f.readline()[:-1]
password = f.readline()[:-1]f.close()receivers = [receiver]message = MIMEText('Python骚扰邮件', 'plain', 'utf-8')
message['From'] = Header("Python骚扰邮件", 'utf-8')
message['To'] = Header("Python骚扰邮件", 'utf-8')subject = 'Python-SMTP邮件测试'
message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP_SSL("smtp.qq.com", 465)smtpObj.connect("smtp.qq.com", 465)smtpObj.login(sender, password)smtpObj.sendmail(sender, receivers, message.as_string())print("邮件发送成功")
except smtplib.SMTPException:print("Error: 无法发送邮件")

做几点必要说明:

  1. 个人信息存在文件里是比较妥善的做法,通过读文件来获取信息
  2. 读的一行文件带有换行符,需要去掉末尾\n
  3. 发QQ邮箱需要开启SMTP服务并获取授权码
  4. 注意异常处理,其实这里的异常处理比较暴力,真的出错也不便于排错

【Python】Smtplib正确模拟发送QQ邮件相关推荐

  1. (Python)使用SMTP发送QQ邮件

    要想通过QQ邮箱来发送邮件,需要开启QQ邮箱的设置-账户里SMTP服务,接下来会通过发送短信验证来获得授权码,有了授权码后就可以在代码里添加了. 接下来看看QQ的邮件服务器配置: (授权码填写在代码的 ...

  2. java怎么发qq邮件_java代码如何发送QQ邮件

    近来想写一个qq之间互相发送邮件的工具.奈何一直报错服务错误: org.apache.commons.mail.EmailException: Sending the email to the fol ...

  3. python发送QQ邮件报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER]和smtplib.SMTPAuthenticationError(已解决)

    用python代码发送qq邮件时,采用了以下服务器设置,结果报错: server = smtplib.SMTP_SSL('smtp.qq.com', 587) 报错信息为: ssl.SSLError: ...

  4. oracle 发的邮件qq,python基于SMTP发送QQ邮件

    python基于SMTP发送QQ邮件,供大家参考,具体内容如下 第一步: 1.打开qq邮箱,开启smtp服务 2.验证密保 3.获取授权码 python代码里面使用 在Python中, smtplib ...

  5. 使用Python登录QQ邮箱发送QQ邮件

    这真是黑科技啊,原来推送的广告邮件就是这样产生的.好人用来发节日贺卡,给女朋友纪念邮件:坏人会学着发广告,垃圾邮件.我希望大家能学会了做些有趣的有意义的事情. 今天我带大家实现下简单的发邮件功能.我们 ...

  6. python发送qq邮件(加密非加密)

    python发送qq邮件,加密发送,非加密发送 设置qq邮箱 设置开启客户端功能 设置--->账户 开启POP3/SMTP服务 根据提示开启 授权码 开启成功 查看qq邮件服务器信息1 查看qq ...

  7. Python模拟发送QQ文字/图片消息

    Python模拟发送QQ文字/图片消息 from io import BytesIOimport win32gui import win32con import win32clipboard as w ...

  8. python3:利用SMTP协议发送QQ邮件+附件

    转载请表明出处:https://www.cnblogs.com/shapeL/p/9115887.html 1.发送QQ邮件,首先必须知道QQ邮箱的SMTP服务器 http://service.mai ...

  9. html发送qq邮件消息,Python3实现发送QQ邮件功能(html)_python

    这篇文章主要为大家详细介绍了Python3实现发送QQ邮件功能,html格式的qq邮件,具有一定的参考价值,对Python3感兴趣的小伙伴们可以参考一下本文,本文为大家分享了Python3实现发送QQ ...

最新文章

  1. Matlab与线性代数 -- 对数化间隔向量
  2. 5G信令(就是用户身份信息)风暴——就是客户端通过公钥加密的消息(携带手机IMSI号)发给服务端,服务器需用私钥解密,这个解密比较消耗资源,如果短时间大量请求到来就会触发信令风暴...
  3. windows守护进程脚本
  4. windows Nvidia GPU指令
  5. jvm监控jstatd使用
  6. java spark 读取json_apache-spark - 与aws-java-sdk链接时,在读取json文件时发生Spark崩溃 - 堆栈内存溢出...
  7. java中大数字表示什么_JAVA中大数字的的处理:BigInteger和BigDecimal
  8. 信息学奥赛一本通(1411:区间内的真素数)
  9. 活动丨PGConf.Asia大会11月17-20日线上直播!
  10. 在.Net中进行SQL Server数据库备份与还原操作实用类
  11. 2017 Chinese Multi-University Training, BeihangU Contest
  12. 将指定目录中的txt文件转化成excel文件
  13. LINUX gdk/X11正确获取DPI/Resolution的函数
  14. Struts2进阶版
  15. vga转html电脑打不开,VGA转HDMI转换器解决电脑连接投影仪的问题
  16. 【JavaWeb】之富文本编辑器
  17. .NET Core2.0 WebApi 接收模型对象参数为Null
  18. 边缘计算网关 5G/4G物联网工业互联
  19. java 工资管理系统_Java工资管理系统
  20. 地址转化net配置(公司网络通外网实验)(图文讲解)

热门文章

  1. SHOI2009 会场预约
  2. spring注解大全
  3. oracle 之 基础操作
  4. Hive之import和export使用详解
  5. php取整函数ceil,floor,round,intval函数的区别
  6. Repository 仓储,你的归宿究竟在哪?(一)-仓储的概念
  7. 《荒漠甘泉》4月21日
  8. 筛选出一证多卡 用sql_对比Excel学习SQL(3):对列和行的操作
  9. linux进程实际内存大小,Linux进程内存用量分析之堆内存篇
  10. c语言可以编制出功能复杂的程序,2018级《C语言程序设计》复习题及答案(5页)-原创力文档...