smtplib.SMTPConnectError: (554, b’Local Policy Violation’)

当python用SMTP来发送邮件出现554这个错误的时候,我们该怎么办

首先这个问题是权限问题,你用来发送邮件的这个服务器,不在接收服务器的白名单里面,使得发送邮件一直被拒绝访问,视作垃圾邮件。这样因为一些客户的环境就使得我们很难受了,那面对这种问题我们要怎么解决,首先我们要确定接收邮件的服务器的白名单的IP地址是多少。因为只有确认这一步才开始下面的步骤,不然就无法运行

确定好白名单的ip地址之后我们就先绑定白名单的ip地址,使得我们成功发送邮件

具体代码实现步骤

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import socket
import smtplib
from email.mime.text import MIMEText
from email.header import Headerdef sendMailBySocket(sender, receiver, data):"""@description: 使用socket方式发送邮件:param sender: 发件人邮箱:param receiver: 收件人邮箱:param data: 邮件内容:return: BOOL"""s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 要被绑定白名单的ip地址,s.bind(('xxx.xxx.xxx.xxx', 0))try:# 连接smtp servers.connect(('xxx.xxx.xxx.xxx', 25)) #STMP服务器地址# s.send("EHLO server\r\n".encode(encoding='utf-8'))s.send("MAIL FROM:{}\r\n".format(sender).encode(encoding='utf-8'))s.send("RCPT TO:{}\r\n".format(receiver).encode(encoding='utf-8'))s.send("DATA\r\n".encode(encoding='utf-8'))s.send(data.encode('utf-8'))s.send("\r\n.\r\n".encode(encoding='utf-8'))print(s.recv(1024))#这句不能删,否则会无法发送出去s.send("QUIT\r\n".encode(encoding='utf-8'))return Trueexcept Exception as e:print(e)return Falsefinally:s.close()def sendmail():sender = 'from@runoob.com'receivers = ['429240967@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:sendMailBySocket(sender, receivers, message.as_string())if result is True:print('send success')else:print('send fail')except smtplib.SMTPException:print("Error: 无法发送邮件") sendmail()

smtplib.SMTPConnectError: (554, b‘Local Policy Violation‘)相关推荐

  1. 你想要的完整解决Python smtplib使用163发送邮件时出现 •554 DT:SPM错误smtplib.SMTPDataError: (554, 'DT:SPM 163 smtp5,HdxpC

    最近在学习Python于是自己写了个小脚本测试使用smtp发送邮件,一切ok后出现如下错误: smtplib.SMTPDataError: (554, 'DT:SPM 163 smtp1,GdxpCg ...

  2. 天天生鲜 smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp13

    问题描述 Python3.5 + Django2.2 天天生鲜项目在[3-07_django内置函数发送激活邮件]一节中填写完注册信息后提交时出现如下报错: Internal Server Error ...

  3. python自动发邮件报554错误_python-自动化测试结果发送邮件报错(smtplib.SMTPDataError: (554, b'DT:SPM 163……)解决方法...

    先把我的邮件发送脚本粘贴上来吧,再解释下我的报错和解决方法: import smtplib,email,os,time,yagmail from email.mime.multipart import ...

  4. smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp10,DsCowAA3nir1u6xZq42WDw--.22935S2 1504492533,please

    1 # from email.mime.text import MIMEText 2 # 3 # msg = MIMEText('hello, send by Python...', 'plain', ...

  5. python自动发邮件报554错误_python3 使用smtplib发送邮件错误554

    python3使用smtplib和MIME发送邮件失败 代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18from smtplib import SMTP ...

  6. smtplib python_smtplib —SMTP协议客户端

    ### 导航 - [索引](../genindex.xhtml "总目录") - [模块](../py-modindex.xhtml "Python 模块索引" ...

  7. python:smtplib --- SMTP 协议客户端

    python:smtplib --- SMTP 协议客户端 简介 SMTP 对象 SMTP 示例 简介 smtplib 模块定义了一个 SMTP 客户端会话对象,该对象可将邮件发送到互联网上任何带有 ...

  8. Cisco策略路由(policy route)精解

    注:PBR以前是CISCO用来丢弃报文的一个主要手段.比如:设置set interface null 0,按CISCO说法这样会比ACL的deny要节省一些开销.这里我提醒: interface nu ...

  9. 路由-策略Policy(路由重分发、路由过滤、路由策略)

    Preifx-list前缀列表,用于抓取路由: Distribute-list分发列表,用于RIP和EIGRP过滤路由: Filter-list过滤列表,用于OSPF过滤路由: Route-map路由 ...

最新文章

  1. java怎么运行class文件,面试必会
  2. redis之intset
  3. js读取div从html中导入,在html中div+css布局的简单应用...-js+div+css下拉导航菜单完整代...-CSS文件的条件导入 - Gene Li_169IT.COM...
  4. 【STM32】FreeRTOS创建和删除任务示例(动态方法)
  5. LeetCode刷题(33)
  6. “仁、义、礼、智、信、恕、忠、孝、悌、、节、恕、勇、让”
  7. srs流媒体服务器+obs推流(简单)
  8. ap9h4qmo.exe
  9. 自动化C语言第一次月考试卷,c语言程序设计第一次月考试题
  10. 算法学习01- 生兔子的问题
  11. Velodyne 64线激光雷达协议
  12. esp32 + tft +分光棱镜 透明小电视笔记
  13. 使用Java实现MP3音乐播放
  14. 精心整理的Java学习顺序流程和学习方法
  15. Duplicate Removal
  16. 【码上实战】【立体匹配系列】经典AD-Census: (6)多步骤视差优化
  17. corelDRAW制作笔
  18. Springboot跨域配置报错:When allowCredentials is true, allowedOrigins cannot contain the specia
  19. MT管理器 – 超强的手机文件管理器
  20. 【用户画像】用户画像添加标签、定义标签任务、搭建工程

热门文章

  1. linux卸载python3_linux卸载python3
  2. ijkplayer 源码分析(1):初始化流程
  3. 做IP 还是做自己?
  4. nginx配置域名后的二级目录访问不同项目的配置
  5. MacOS 安装 Maven
  6. Git入门与使用 (三) 使用GitHub进行代码托管的相关操作
  7. Python操作三大主流数据库
  8. 软考信息系统项目管理师考试视频辅导课程-卢海强-专题视频课程
  9. Qt中LineEdit、TextEdit 、PlainTextEdit三个控件的区别
  10. 荣耀手机能不能使用鸿蒙os,荣耀手机究竟能不能体验鸿蒙OS?