使用python2.7发送邮件,通过脚本调试,脚本运行通过成功发出了邮件,但是目标邮箱qq没有收到。

刚开始怀疑脚本问题,上网查找资料后,发现邮箱发送成功后目标邮件没有收到有可能有以下几种原因:

1、邮件正在传递途中。
  Email的发送过程不是同步的,各个传递中继处理需要时间;如果发送方服务器或者收信方服务器短时间内囤积了大批量邮件传递任务,也会有一定的时间去排队。这个周期最长是三天,如果三天内投递不成功,发件箱会有退信通知的。
  2、邮件在多个服务器或网段之间传递,延迟或拒绝投递。
  不同邮件域名或邮件服务器直接Email传递有一个过程,这个一般要几个小时甚至更长时间。如果这些服务器不在同一个网段,那么这封Email的传递过程肯定不是即时的。例如从Gmail邮箱QQ邮箱发送邮件,经常会遇到这个情况,特别是用软件做邮件群发的过程中,短时间内的大量邮件会造成网络堵塞,从而降低了传递速度;而这个时候用网页直接发送,选择的路由与客户端发送的路由是不同的,速度则会提高,没有可比性。
  另一方面,服务器也会决绝投递跨网域的Email。比如用QQ邮箱去发送QQ邮箱,很快就能收到了,而用sina邮箱通过SMTP去发送Email给QQ邮箱,数量稍微多一些或者内容稍有重复,新浪邮箱服务器往往拒绝投递而不做任何通知;但也不全部是这样的,比如Gmail邮箱去发送QQ邮件,如果拒绝投递,会Email通知你。
  3、收信服务器或者收件人直接拒收或丢弃。
  这种情况有很多种,这里着重说一下黑名单机制。服务器端要维护一个域名黑名单,对于每封过来的邮件,判断其所在域是否在这个黑名单中,形象的说,你的邮件地址是xxx@abot.cn,那么所有来自@后面的这个段的Email,都会被Block掉,但这不是等价的,比如你的Email地址是xxx@qunfa.abot.cn,根据算法,同样符合abot.cn这个黑名单规则。
  另一种就是内容过滤,比如网易系列邮箱经常会提高安全级别,将来自网易系列邮箱(163、126、yeah等)之外的,内容中包含附件、http字样的内容全部拒收或直接丢弃。21cn、sohu之类的收件服务器对此过滤较为严格。
  4、进入垃圾邮件了。
  这种情况是很常见的,如果某个客户端发送频率过高,或者包含大量可疑为垃圾邮件内容的关键字,甚至收件人将你的email地址列入黑名单,你发过去的邮件,都会被判断垃圾邮件。
  5、发件服务器(SMTP服务器)不通知的情况下丢邮件。
  这种情况在新浪和网易邮箱中最为常见,包括sina.com和sina.cn,以及163、126、yeah等,这几个邮箱发出去的邮件。这类SMTP服务器认为某个账号可能群发邮件时候,会悄悄放弃传递,而告之用户投递成功,做法与Gmail相反。
  6、被发送方客户端或者服务器的杀毒软件或者防火墙过滤掉。
  客户端电脑的情况:如果客户端安装了瑞星、诺顿、卡巴斯基等杀毒软件或者防火墙之类的软件,并且设置了严格的网络过滤规则,他们可能过滤掉正常的电子邮件。
  服务前段过滤的情况:如果服务器端对内容检查比较严格,通过其SMTP传递Email会变得非常困难,比如sohu.com以及21cn.com等邮箱,虽然是开通SMTP服务了,但是他们的杀毒软件检查太严格,即使是正常的邮件内容,也很难通过他们传递出去。

我判断应该是目标邮箱安全方面的问题,于是我查看我的发送邮箱,发现发送出去的邮件真的是由于安全问题被退回,信息如下:

我试着更改了另一个目标邮箱,目标邮箱成功收到邮件:

实现代码如下:

from  email.header import Header
from email.mime.text import MIMEText
import smtplib
#发送邮箱
sender='yq_test@126.com'
password='123456'
#接受邮箱
receiver='41618174@qq.com'

smtpserver='smtp.126.com'

subject='python email test'
msg=MIMEText('下雨了,大家关好窗户','plain','utf-8')
msg['Subject']=Header(subject,'utf-8')
msg['From']=sender
msg['to']=receiver
try:
    smtp=smtplib.SMTP()
    smtp.connect(smtpserver)
    smtp.login(sender,password)
    smtp.sendmail(sender,receiver,msg.as_string())
    smtp.quit()
    print "邮件发送成功"
except smtplib.SMTPException:
    print "Error:无法发邮件"

各位看官,看完后不要忘了为我乐于分享的精神点个赞哦

python2.7发送邮件失败之——邮箱安全问题的更多相关文章

  1. python2.7发送邮件失败之——代码问题

    使用python2.7发送邮件,代码如下: from email.header import Headerfrom email.mime.text import MIMETextimport smtp ...

  2. python2.7发送邮件失败之——SMTPAuthenticationError问题

    使用python2.7发送邮件,代码如下: from email.header import Headerfrom email.mime.text import MIMETextimport smtp ...

  3. python通过SMTP发送邮件失败,报错505/535

    python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')    我们使用pyth ...

  4. (转)解决jdk1.8中发送邮件失败(handshake_failure)问题

    解决jdk1.8中发送邮件失败(handshake_failure)问题 作者 zhisheng_tian 2016.08.12 22:44* 字数 1573 阅读 2818评论 6喜欢 9 暑假在家 ...

  5. Linux SendMail发送邮件失败诊断案例(四)

    最近又碰到一起Linux下SendMail发送邮件失败的案例,邮件发送后,邮箱收不到具体邮件, 查看日志/var/log/maillog 发现有"DSN: User unknown" ...

  6. Jenkins 邮件配置 || Jenkins 发送邮件失败,提示:Error sending to the following VALID addresses

    jenkins---系统管理---系统设置 在Jenkins URL下填写URL链接 在系统管理员邮件地址下填写发件邮箱,这将是以后发送邮件通知的发件人 如果下载了外部邮件通知 配置一下SMTP se ...

  7. JDK1.8导致发送邮件失败

    问题:本地JDK1.6测试可以发送邮件,但是linux上jdk1.8发送邮件失败.报错: Sending the email to the following server failed : smtp ...

  8. Linux SendMail发送邮件失败诊断案例(三)

    一Linux服务器突然发送不出邮件,检查了很多地方都没有发现异常,检查/var/log/maillog发现如下具体信息: Apr 12 00:36:04 mylinux sendmail[4685]: ...

  9. C# 使用 SmtpClient.SendAsync 方法发送邮件失败,总是返回 Cancelled

    问题: 调用 SmtpClient.SendAsync,在 SendCompleted 的回调函数里面总是获取到 e.Cancelled 为 true. 后来测试了一下,相同的代码,只是把 SmtpC ...

随机推荐

  1. Python pyecharts绘制仪表盘

    一.仪表盘gauge.add方法简介 gauge.add()方法签名 add(name,attr,value, scale_range=none, angle_range=none,**kwargs) ...

  2. Kubernetes-API Server

    前言 本篇是Kubernetes第十四篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战. Kubernetes系列文章: Kubernetes介绍 Kubernetes环境搭建 Kubern ...

  3. java 图形化小工具Abstract Window Toolit 菜单项

    AWT 中的菜单由如下几个类组合而成 MenuBar: 菜单条,菜单的容器. Menu: 菜单组件,菜单项的容器,它也是Menultem的子类,所以可作为菜单项使用. PopupMenu: 上下文菜单 ...

  4. SpringBoot使用 MyBatis Plus 实现物理分页查询

    一.分页配置在MyBatis Plus 可以直接使用selectPage这样的分页,但返回的数据确实是分页后的数据,但在控制台打印的SQL语句其实并没有真正的物理分页,而是通过缓存来获得全部数据中再进 ...

  5. C++使用C语言库函数创建文件夹

    概述 本文演示环境: win10 + vs2017 头文件 #include <io.h> #include <direct.h> 函数 下面的函数,从左至右依次检查文件夹是否 ...

  6. Visiual Studio之c++项目瘦身(删除中间项)

    欢迎指正 本文主要涉及 Visiual Studio(简称VS) 创建的c++项目 和 windows下批处理相关点. 1.中间项 A.VS创建的c++项目,生成后,会有许多中间项,包括项目生成的中间 ...

  7. dart系列之:dart优秀的秘诀-隔离机制

    目录 简介 dart中的隔离机制 生成一个Isolate Isolate之间的交互 一个例子 总结 简介 之前介绍了很多dart中的异步编程技巧,不知道大家有没有发现一个问题,如果是在java的异步编 ...

  8. 【LeetCode】726. Number of Atoms 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/number-o ...

  9. 【LeetCode】791. Custom Sort String 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 按顺序构造字符串 排序 日期 题目地址:https: ...

  10. Improving Adversarial Robustness via Channel-Wise Activation Suppressing

    目录 概 主要内容 代码 Bai Y., Zeng Y., Jiang Y., Xia S., Ma X., Wang Y. Improving adversarial robustness via ...