朋友讓我給他媳婦兒肚子里的孩子想個名字
走的越來越快了,有天看到一個論點關於說地域會影響人的一輩子。其實想想的確有這個理兒,這使我想起來每天早上擠地鐵的時候,其中有一個A站的人總是特別彪悍的往里擠,但B站的人就是永遠不會去擠。這並不能說住在A站的人生來彪悍,只是他們那里住的人多,不去與別人爭搶你就會上班遲到,相應或許就會扣工資,遭老板白眼!就是這樣。
說回正題。讓你一行代碼實現發送郵件功能
由於幾乎在每個項目開發中都離不開發送郵件功能,所以,我們反感反復造輪子,就隨手基於Net.Mail封裝的發送郵件代碼。這段代碼寫了很久了,今天拿出來完善了一下、改了一個bug、加了注釋、寫了文檔,一直在GitHub上面,重新發布到了NuGet上。這段代碼可以用於在.Net項目中發送郵件,只需一行代碼,真的是一行。支持多附件、多接收人、多抄送人。
注:歡迎大家使用及提Bug.
GitHub地址:https://github.com/mafly/Mail
其實也沒什么特性
- 支持自定義郵件發出郵箱、發出方名字等。
- 支持SSL加密發送。
- 多個接收人、抄送人。
- 支持添加附件、多個附件。
- 目前大部分主流郵箱全支持。
傻瓜式安裝
via NuGet:
1.打開程序包管理器控制台,執行命令:
Install-Package Mafly.Mail
或:
2.在Project右鍵,選擇“管理NuGet程序包”,在右上角搜索框搜索“Mafly.Mail”。點擊安裝
via 源代碼:
引用如下兩個 .dll 文件
Newtonsoft.Json.dll
Mafly.Mail.dll
然后在項目目錄下建立一個名字為 Config 文件夾,放入 MailSetting.config 文件,根據自己的郵箱服務器進行配置
注:以上兩種方式完成后,都要把
MailSetting.config
的復制到輸出目錄
設置為始終復制
,或者把生成操作
設置為嵌入的資源
。
這一步不能少!不能少!!不能少!!!
不用看就會的用法
var mailService = new Mafly.Mail.Mail();
//參數:接收者郵箱、內容
mailService.Send("mafly@obo2o.cn", "測試郵件發送!");
//參數:接收者郵箱、接收者名字、內容
mailService.Send("mafly@obo2o.cn", "mafly", "測試郵件發送!");
//參數:接收者郵箱、接收者名字、郵件主題、內容
mailService.Send("mafly@obo2o.cn", "mafly", "郵件發送", "測試郵件發送!");
//使用MailInfo對象模式 參數:接收者郵箱、接收者名字、郵件主題、內容
mailService.Send(new MailInfo
{
Receiver = "mafly@obo2o.cn",
ReceiverName = "mafly",
Subject = "郵件發送",
Body = "測試郵件發送!"
});
//使用MailInfo對象模式 參數:接收者郵箱、接收者名字、郵件主題、內容、附件路徑
mailService.Send(
new MailInfo
{
Receiver = "mafly@obo2o.cn",
ReceiverName = "mafly",
Subject = "帶附件郵件發送",
Body = "測試帶附件郵件發送!"
}, "../../Program.cs");
//使用MailInfo對象模式 參數:接收者郵箱、接收者名字、郵件主題、內容、多附件路徑
mailService.Send(
new MailInfo
{
Receiver = "mafly@obo2o.cn",
ReceiverName = "mafly",
Subject = "帶附件郵件發送",
Body = "測試帶附件郵件發送!"
}, new Attachment("../../Program.cs"), new Attachment("../../App.config"));
想了解 Attachment
對象和 MailMessage
對象的。具體請點擊官方文檔:Attachment Class、MailMessage Class
最后的 Q&A
你封裝的這一個其實並沒有什么卵用,很簡單阿,有這個必要嗎?
是的,你說的對。
為什么不使用現成的那些、在線服務呢?如:SendCloud
你管。
真的是一行代碼么?我看到好多行阿。
現在這個社會,沒有噱頭誰會看呢,您說是吧?
我能再問最后一個問題嗎?
不能。