天天看點

Azure 上通過 SendGrid 發送郵件SendGrid 是什麼?建立 SendGrid 賬号在C# 項目中使用 SendGrid發送測試郵件發送帶附件的郵件已知問題總結

SendGrid 是架構在雲端的電子郵件服務,它能提供基于事務的可靠的電子郵件傳遞。

并且具有可擴充性和實時分析的能力。常見的用例有:

自動回複使用者的郵件

定期發送資訊給使用者

生成報表等

由于使用 SendGrid 這樣的第三方郵件服務既穩定可靠又不用自己維護郵件伺服器,并且對于郵件發送量不大的應用,免費發送的郵件數 (每個月25000封)已經可以滿足需求。是以越來越多的應用都開始使用這種郵件服務來發送郵件。

下面我們從 Azure 上建立 SendGrid 賬号開始,介紹如何通過 SendGrid 發送郵件。

登入 Azure 的管理網站,點選 "+"開始建立 SendGrid 賬号。在搜尋欄中輸入“SendGrid Email Delivery”并回車:

Azure 上通過 SendGrid 發送郵件SendGrid 是什麼?建立 SendGrid 賬号在C# 項目中使用 SendGrid發送測試郵件發送帶附件的郵件已知問題總結

選擇“SendGrid Email Delivery”進入簡介界面:

Azure 上通過 SendGrid 發送郵件SendGrid 是什麼?建立 SendGrid 賬号在C# 項目中使用 SendGrid發送測試郵件發送帶附件的郵件已知問題總結

在簡介界面中,可以讀到一些基本的資訊,當然直接點選“Create”就可以了!此時進入建立 SendGrid 詳情界面,界面的基本資訊我們就不關注了,請直接檢視 Pricing tier 中 F1 free 的收費标準,這可是貨真價實的每個月25000封免費郵件。最後點選“Create”完成建立:

Azure 上通過 SendGrid 發送郵件SendGrid 是什麼?建立 SendGrid 賬号在C# 項目中使用 SendGrid發送測試郵件發送帶附件的郵件已知問題總結

SendGrid 賬号建立完成後,我們檢視一下它的 Configurations 資訊:

Azure 上通過 SendGrid 發送郵件SendGrid 是什麼?建立 SendGrid 賬号在C# 項目中使用 SendGrid發送測試郵件發送帶附件的郵件已知問題總結

在使用 SendGrid 發送郵件時,需要用到這些資訊。首先你會看到使用者名已經被處理過了,在通路 SendGrid 服務時,我們使用的就是這個被處理過的使用者名稱。還有下面的 SMTP SERVER,也就是說當我們建立了 SendGrid 賬号後,還可以用傳統的方式通過指定的 SMTP 伺服器來發送郵件。

假如我們要在一個 asp.net 的應用中通過 SendGrid 發送郵件。那麼在使用 SendGrid 服務之前,我們需要先在該項目中安裝 SendGrid 提供的元件。請在 Visual Studio 的 Package Manager Console 中執行下面的指令:

注意,SendGrid 的 API 更新很快,我們這裡使用的是 V2 版本的 API,是以要指定安裝的版本。

Azure 上通過 SendGrid 發送郵件SendGrid 是什麼?建立 SendGrid 賬号在C# 項目中使用 SendGrid發送測試郵件發送帶附件的郵件已知問題總結

萬事俱備,讓我們先發送一封普通的郵件試試:

代碼很簡單。需要注意的是,這段代碼在你本地調試時,是無法發送郵件的。你需要把你的應用釋出到 Azure 的 Web App 或是 Cloud Service 上才能成功發送郵件。

你可以使用 SendGridMessage.AddAttachment 方法,為你的郵件添加附件。這個方法有兩個重載,分别是指定檔案路徑和檔案流。如果你的程式運作在 Azure上,讀取檔案流的用例會多一些。

如果你還需要其它一些功能,請詳細的閱讀 SendGridMessage 類型的 API,它基本上能夠滿足你所有的需求。

如果你有一個非常頑固的使用者,他要求你發出的郵件内容必須是純文字的形式 (主要是為了保持手動建立的各種換行和縮進),不能是 HTML 格式的,這将會是一個不小的挑戰。因為 SendGrid 預設把郵件内容包成了 HTML 格式。不過我們還是有方法滿足客戶的,你可以嘗試在每一行文本前面添加一個半角的空格,這也是 SendGrid 官方給出的方法。

其實,還有另外一種方式可以實作類似的效果。那就是把所有的文本内容放到 html 的<pre>元素中,代碼也很簡單:

本文概要的介紹了在 Azure 上的 C# 應用中,如何使用 SendGrid 發送電子郵件。雖然代碼不多,但描述了整個操作過程,希望對朋友們有所幫助。

相關閱讀:

<a href="http://www.cnblogs.com/powertoolsteam/p/Windows_Azure.html">最全的Windows Azure學習教程彙總</a>

<a href="http://www.cnblogs.com/powertoolsteam/p/Azure_Blob_Storage.html" target="_blank">Azure Blob Storage 基本用法 -- Azure Storage 之 Blob</a>

<a href="http://www.cnblogs.com/powertoolsteam/p/Azure_Queue_Storage.html" target="_blank">Azure Queue Storage 基本用法 -- Azure Storage 之 Queue</a>

<a href="http://www.cnblogs.com/powertoolsteam/p/Azure_File_Storage.html" target="_blank">Azure File Storage 基本用法 -- Azure Storage 之 File</a>

<a href="http://www.cnblogs.com/powertoolsteam/p/5707033.html" target="_blank">Azure Table storage 基本用法 -- Azure Storage 之 Table</a>

繼續閱讀