1. 程式人生 > >ASP.NET CORE使用MailKit的一個故障點分析

ASP.NET CORE使用MailKit的一個故障點分析

ASP.NET CORE下有需要發郵件的需求,但是原來framework下的 system.net.mail,沒有實現smtpclient的功能(當時看是沒有,說是準備併入.net core來著),所以只能搜尋三方的開源元件,就發現了MailKit了。專案地址: https://github.com/jstedfast/MailKit

public void SendEmailAsync()        {            var message = new MimeMessage();            message.From.Add(new MailboxAddress("Anuraj", "
[email protected]
"));            message.To.Add(new MailboxAddress("ttt", "[email protected]"));            message.Subject = "Hello World - A mail from ASPNET Core";            message.Body = new TextPart("plain")            {                Text = "Hello World - A mail from ASPNET Core"            };            using (var client = new SmtpClient())            {                //client.QueryCapabilitiesAfterAuthenticating = false;
                client.Connect("smtp.test.com", 25, false);                client.AuthenticationMechanisms.Remove("XOAUTH2");                // Note: since we don't have an OAuth2 token, disable                 // the XOAUTH2 authentication mechanism.                     client.Authenticate("[email protected]
", "testpassword");                client.Send(message);                client.Disconnect(true);            }

 很簡單的同步程式碼的例子(也有非同步方法可用),黃色高亮的程式碼,是從網上搜索來的程式碼中沒有的,如果註釋掉, 我用公司的伺服器傳送郵件一直失敗,然後網上搜索,發現有人用aliyun郵箱,也失敗,並給出了方案。

http://www.cnblogs.com/dudu/p/5661267.html 

說是在驗證通過後,傳送了EHLO ,導致認證失敗。 由於我看的時候,版本已經更新到了 1.12版本了,所以就下載了該版本程式碼,跟蹤了一下,果然也是這個原因引起的

if (response.StatusCode == SmtpStatusCode.AuthenticationSuccessful) {if (QueryCapabilitiesAfterAuthenticating)Ehlo (cancellationToken);authenticated = true;

 如果QueryCapabilitiesAfterAuthenticating = false,應該就不傳送 cancellationToken了,然後測試了下,果然可以正常傳送了, 並且,這個 QueryCapabilitiesAfterAuthenticating 是一個public屬性,所以,直接設定成false,就沒問題了。

相關推薦

ASP.NET CORE使用MailKit的一個故障分析

ASP.NET CORE下有需要發郵件的需求,但是原來framework下的 system.net.mail,沒有實現smtpclient的功能(當時看是沒有,說是準備併入.net core來著),所以只能搜尋三方的開源元件,就發現了MailKit了。專案地址: https://github.com/jst

ASP.NET MVC 右鍵擊添加沒有區域(Area)、控制器、試圖等選項

log 解決問題 strong mage 點擊 jpg 安裝 sof 技術 在MVC項目中準備添加控制器、區域時發現沒有控制器這個選項,當時沒有在意以為VS出問題了,網上所搜了一下,有人說沒有安裝:Microsoft.AspNet.Mvc或者需要升級。 本次的解決如下:

真正解決ASP.NET一個頁面首次訪問超級慢的問題

今天搜尋了一下,原來是這樣的: .net程式第一次執行速度慢的問題原因是第一次執行需要驗證數字簽名。當程式裡面需要呼叫到一些 Authenticode Signed的.NET Assembly的時候,它需要連線到外網來驗證數字證書。當伺服器是無法連線到外網時,這個校驗證書的過程需要等到timeout之

ASP.NET Core WebAPI中的分析工具MiniProfiler

介紹 作為一個開發人員,你知道如何分析自己開發的Api效能麼? 在Visual Studio和Azure中, 我們可以使用Application Insight來監控專案。除此之外我們還可以使用一個免費工具Stackify Prefix,它允許追蹤所有的Http請求, 這

asp.net中Button按鈕選兩次才執行Onclick事件的原因

     今天寫了一個簡單的聊天室,有登入頁面和聊天室,當從登入頁面跳入到聊天室過後,卻發現要點選兩次傳送按鈕才能傳送到顯示區,然後傳送按鈕正常執行。       通過不斷測試,發現,第一次點選並沒有執行點選事件,第二次才執行的點選事件。並且也找到了問題所在。下面用一個

asp.net一個頁面跳轉,後一個頁面操作內容後返回先前頁面,並使得先前頁面資料重新整理

A.aspx 頁面中一個按鈕跳轉到B.aspx頁面,在B.aspx頁面中一個按鈕操作按鈕後,返回上一頁,並重新整理資料。 protected void Page_Load(object sender,

asp.net中GridView內部選事件判斷是第幾行並獲取row資料

前臺:  <asp:GridView ID="grid" runat="server" class="com_table" AutoGenerateColumns="False">  &l

asp.net中的按鈕選事件

ASP.NET中Onclick和OnserverClick事件的區別 對於伺服器按鈕控制元件(即<asp:Button>型別的按鈕): 伺服器響應事件:OnClick 客戶端響應屬性:OnClientClick 對於html按鈕控制元件(即<input ty

Asp.Net WebApi一個簡單的Token驗證

1、前言: WebAPI主要開放資料給手機APP,Pad,其他需要得知資料的系統,或者軟體應用。Web 使用者的身份驗證,及頁面操作許可權驗證是B/S系統的基礎功能。我上次寫的《Asp.Net MVC WebAPI的建立與前臺Jquery ajax後臺HttpClient呼叫詳解》這種跟明顯安全性不是那麼好

簡單分析下SPring MVC和Asp.net MVC的區別和異同

     .Net 檢視載入 在 ActionResult之後呼叫檢視類的Render展示檢視。而無獨有偶,Spring MVC在 Dispatcher DoDispath 最後也是呼叫Render載入檢視,看來.Net 與Java極具雷同。   &

asp.net---iframe切分頁面,區域性重新整理,一個頁面的選事件在另一個頁面響應

例如如下幾個頁面,想要實現在頁面1中輸入資訊點擊發送後,頁面2立即顯示所輸入的資訊前端程式碼為:<form id="form1" runat="server" method="post"> <div class="container main

從零開始構建一個asp.net Core 項目(二)

mage .... cfi web execute 運行 figure 今天 deb 接著上一篇博客繼續進行。上一篇博客只是顯示了簡單的MVC視圖頁,這篇博客接著進行,連接上數據庫,進行簡單的CRUD。 首先我在Controllers文件夾點擊右鍵,添加->控制器 彈

ASP.NET一個簡易的WebServer,用控制臺程序模擬IIS 托起web服務

public 程序 控制臺 ProcessRequestHandler( page, query, TextWriter writer); WebServer : MarshalByRefObject, IRegisteredObject { Pro

Asp.net button防止擊多次數據提交

popu -s rac -a func nat btn display put ?? <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="serv

ASP.NET MVC 排球計分程序 (三)需求分析與數據庫設計

arch 情況 img 需求 全場 ima 功能 每次 str 需求分析: 軟件名稱:排球計分程序 1、 需要鍵入比賽人員的的姓名,需要根據場上的比賽結果及時做出操作,記分員可以在記錯的情況下撤銷上一部操作。比賽結束,記分員應能查詢到每個隊伍的進球情況,以及攔網、擊球等的

Asp.Net Core App 部署故障示例

str .com href init 日誌 with pro 新的 listen 相關閱讀:Windows + IIS 環境部署Asp.Net Core App 1. HTTP Error 502.5 – Process Failure 環境 Window

CVE-2010-3332分析 Microsoft ASP.NET - Padding Oracle (MS10-070)

targe 自己 erp mic 詳細 pad dir 增加 auto 相關鏈接:     exploit-db:https://www.exploit-db.com/exploits/15213/     微軟安全公告:https://technet.microsoft.

ASP.NET登錄(代碼)

方法 利用 tar 方便 單點 else sta new t key 由於某些原因,在我們的應用中會遇到一個用戶只能在一個地方登錄的情況,也就是我們通常所說的單點登錄。在ASP.NET中實現單點登錄其實很簡單,下面就把主要的方法和全部代碼進行分析。[/p][p=25, nu

ASP.NET MVC 搜索+保存搜索結果.2個按鈕共用一個表單

req request exp select ucc 結果 total cli 調用 想要實現的效果,1.搜索功能 2.搜索結果保存到text功能 前臺代碼 一個表單2個按鈕,通過JS代碼來修改form的action,來實現調用不同的後臺代碼 &l

分享一個全開源的ASP.NET快速開發平臺,能快速開發OA CRM ERP 等系統

web 更多 ora 支持 環境 get class don 搭建 bingo炸了 2017/3/30 16:28:14 閱讀(870) 評論(0) 公司業務量比較大,接了很多項目,為了縮短開發周期老板讓我牽頭搭建了一個快速開發平臺。 我們主要的業務是做OA