qq邮箱高频率邮件来源自动屏蔽的信任办法

摘要:我们在使用QQ邮箱作为告警接收邮箱的时候,用了一段时间发现,告警邮箱再也没办法发出来了,非常的困惑,检查了全部的网络策略、dns、smtp服务器配置都没有问题,原来是qq邮箱的自动策略,在此记录。

python 测试smtp脚本

我们使用python的测试smtp脚本,无密码时使用,有密码时去掉注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# -*- coding: utf-8 -*-
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib

def _format_addr(s):
name, addr = parseaddr(s)
return formataddr(( \
Header(name, 'utf-8').encode(), \
addr.encode('utf-8') if isinstance(addr, unicode) else addr))

from_addr = 'root@mymail.com'
to_addr = ['xxxx@163.com','xxx.qq.com']
#password = ''
smtp_server = 'mymail'

msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
msg['From'] = _format_addr(u'monitorcloud <%s>' % from_addr)
msg['To'] = _format_addr(u'管理员 <%s>' % to_addr)
msg['Subject'] = Header(u'来自SMTP的问候……', 'utf-8').encode()

server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
#server.starttls()
#server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()

发送情景

发送到163邮箱

  • 发送到163邮箱是成功的
  • 但是发送到qq邮箱不行了

maillog

  • 查/var/log/maillog 发现有如上报错信息

qqfilter

  • 查QQ邮箱没有收到邮件
  • 有如上拦截信息

解决办法

反垃圾

  • 进入反垃圾设置地址白名单和域名白名单

域名白名单

地址白名单

测试成功

qq邮箱收件结果

附SMTP错误码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
·The server rejected the message: 554 DT:SPM smtp2 Cannot send message 451 MI:SFQ 0,smtp9,DcCowLD735x2fG1MgWLhAA--.11609S2 1282243
邮件服务器拒绝发送邮件,判断为发送垃圾邮件。建议您检查邮件内容,是否包含一些比较敏感的内容。
·Cannot send message data: 550 5.4.5 Daily sending quota exceeded. q31sm4299413ybk.1
不能发送邮件,每日发送额度用完。建议您控制此邮箱每天的发送量,今天发送量已经用完,需要明天才能继续发送。
·Recipient rejected: <xxx@yahoo.com>: 553 5.7.1 < xx@xx.com >: Sender address rejected: not owned by user xx@xx.com
发送邮箱地址被拒绝。建议您换个邮箱发送。
·Recipient rejected: <xxx@yahoo.co.uk>: 550 Your mailbox is full?
您的邮箱空间已满不能再发送邮件。建议您整理邮箱中的邮件。
·Cannot send message: 451 sorry, server closed?
不能发送,服务器已经关闭。建议您稍候再尝试邮件发送操作 。
·Recipient rejected: <xxx@yahoo.com>: 500 Error: bad syntax
收件人地址格式不正确。请核实收件人地址是否正确。
·421 Service not available, closing transmission channel (This may be a reply to any command if the service knows it must shut down)
服务暂时不可用!建议您稍候再尝试发送。
·450 Requested mail action not taken: mailbox unavailable (E.g., mailbox busy)
邮件发送请求没有发生:邮箱不可用(例如,邮箱忙)!建议您稍候再尝试!
·451 Requested action aborted: local error in processing
请求的邮件操作被中止:本地进程错误。建议您重新启动邮件营销助手来尝试发送
·550 Requested action not taken: mailbox unavailable (E.g., mailbox not found, no access)?
请求的操作未被执行:邮箱不可用(例如,邮箱未找到,不能访问)。建议您稍候再尝试。
·552 Requested mail action aborted: exceeded storage allocation
请求的邮件操作中止:超出存储分配。建议您整理邮箱中的邮件。
· 553 Requested action not taken: mailbox name not allowed (E.g., mailbox syntax incorrect)
请求的操作未被执行:不允许的邮箱名称(例如,邮箱的语法不正确的);
·550 5.3.4 Requested action not taken; This account is currently blocked from sending messages. If you don't think you've violated the Windows Live Terms of Use, please contact customer support
请求不采取行动,这是目前从帐户发送的邮件被阻止。如果您不认为您已经违反了Windows Live的使用条款,请联系其客户支持。

引用

常见SMTP发送失败原因列表
SMTP发送邮件

坚持原创技术分享,您的支持将鼓励我继续创作!