C# 发送邮件到smtp服务器错误:以一种访问权限不允许的方式做了个访问套接字的尝试

原文链接

问题描述:

发送邮件程序,突然某一天遇到不能发送邮件。

IIS可以正常发送邮件

服务与程序不能发送

程序在本机能发送,在服务器不能发送,说明不是程序问题

一定有东西阻止了程序发送邮件

IIS能发送,说明不是端口问题,也大胆假设不存在端口同时占用的情况。。这个很容易验证,关闭IIS,启动程序,依然不能发送

写个测试程序,用异步方式不报错,就是没收到

改用同步方式,报错  “以一种访问权限不允许的方式做了个访问套接字的尝试”

上网搜到答案

下面抄的,不用换语言

换语言->>不管是什么语言的程序都不能发送。

C#报告 “以一种访问权限不允许的方式做了个访问套接字的尝试”

Java报告 “无法连接到服务器”

换命令telnet 目标机器->>失败

检查防火墙->>防火墙状态OK

关闭防火墙->>问题依旧

换smtp服务器->>同样失败

换机器->>居然telnet可行,目测程序发送亦可。难道机器被服务器ban了?不至于多个smtp服务器同时ban。

检查日志->>已由端口禁止规则 (防病毒标准保护:禁止群发邮件蠕虫发送邮件) 禁止。

检查杀毒软件mcafee->>访问保护-》标准保护中启用了蠕虫群发检测。

更改杀毒软件策略,关闭禁止蠕虫群发->>邮件发送成功,一切正常

 

总结,出现类似的问题都是由于服务器不可访问或客户点可不访问引起的,需要逐项彻底检查。尤其是windows策略,杀毒软件策略,防火墙策略可能自动变化的情况下。


————————————————
版权声明:本文为CSDN博主「xiciliu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiciliu/article/details/78132594

邮件发送失败还有个坑

邮件地址有空格,将报错

批量发送、抄送都会失败

发送邮件前先处理空格问题

原文地址:https://www.cnblogs.com/cvol/p/15102359.html