C# 傳送郵件到smtp伺服器錯誤:以一種訪問許可權不允許的方式做了個訪問套接字的嘗試
阿新 • • 發佈:2021-08-05
問題描述:
傳送郵件程式,突然某一天遇到不能傳送郵件。
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