C#使用 System.Net.Mail發送郵件功能

介紹

System.Net.Mail命名空間是在.NET Framework中新增的,該命名空間提供了發送電子郵件的功能。通過對本章的學習,讀者可以輕松地使用.NET Framework提供的類庫來發送電子郵件。System.Net.Mail 命名空間包含用于將電子郵件發送到SMTP服務器的類,這些類需要結合Microsoft SMTP Server一起使用。

System.Net.Mail 命名空間下有SmtpClient類用于發送郵件,可以完全代替SmtpMail類。利用SmtpClient類的Send方法可以完成發送電子郵件的傳 輸,也可以用SendAsync方法進行異步發送,后者發送完成后會產生一個SendCompleted 事件來通知發送結果。Send方法可以接受MailMessage類的對象作為參數。通過MailMessage類可以設置郵件更多的內容和格式,例如,為 Attachment類設置添加附件的參數。

SmtpClient 類與SMTP結合在一起,通過MailMessage類、MailAddress類、Attachment類來豐富電子郵件的內容和設置。圖18-2展示 了用戶通過System.Net.Mail命名空間下的類結合SMTP發送電子郵件的過程。

SmtpClient類的語法定義如下:

public class SmtpClient

下面的代碼演示如何創 建一個SmtpClient的實例。

SmtpClient ?client = new SmtpClient (“smtp.Sina.com”); //直接通過構造函數設置SMTP 主機服務器

或:

SmtpClient ?client = new SmtpClient ();

Client. Host =” smtp.Sina.com”; //通過Host屬性來設置SMTP 主機服務器

完整代碼

///?<summary>///?郵件處理器///?</summary>public?class?MailHandler{private?MailMessage?_mailMessage;private?string?_host;private?string?_userName;private?string?_password;public?MailHandler(){}///?<summary>///?設置郵件信息///?</summary>///?<param?name="subject">主體</param>///?<param?name="body">內容</param>///?<param?name="from">發件人</param>///?<param?name="to">收件人</param>///?<param?name="cc">抄送人</param>///?<param?name="bcc">密件抄送人</param>///?<param?name="isBodyHtml">內容是否為Html</param>public?void?SetMailMessage(string?subject,?string?body,?string?from,?string[]?to,?string[]?cc,?string[]?bcc,?bool?isBodyHtml?=?true){_mailMessage?=?new?MailMessage();_mailMessage.Subject?=?subject;_mailMessage.Body?=?body;_mailMessage.IsBodyHtml?=?isBodyHtml;_mailMessage.From?=?new?MailAddress(from);if?(to?!=?null){foreach?(var?item?in?to){_mailMessage.To.Add(item);}}if?(cc?!=?null){foreach?(var?item?in?cc){_mailMessage.CC.Add(item);}}if?(bcc?!=?null){foreach?(var?item?in?bcc){_mailMessage.Bcc.Add(item);}}_mailMessage.BodyEncoding?=?System.Text.Encoding.UTF8;}///?<summary>///?配置Smtp服務主機及身份驗證///?</summary>///?<param?name="host">Smtp主機名或Ip</param>///?<param?name="userName">用戶名</param>///?<param?name="password">密碼</param>public?void?SetSmtp(string?host,?string?userName,?string?password){this._host?=?host;this._userName?=?userName;this._password?=?password;}///?<summary>///?發送郵件///?</summary>public?void?Send(){using?(var?sc?=?new?SmtpClient()){sc.Host?=?_host;sc.Port?=?25;sc.DeliveryMethod?=?SmtpDeliveryMethod.Network;sc.Credentials?=?new?System.Net.NetworkCredential(_userName,?_password);sc.Send(_mailMessage);}}public?string?SendMail(string?title,?string?content){var?smptHost?=?ConfigHelper.GetAppSetting("SmtpHost");var?userName?=?ConfigHelper.GetAppSetting("MailUserName");var?password?=?ConfigHelper.GetAppSetting("MailPassword");var?mailToAddress?=?ConfigHelper.GetAppSetting("MailAddress").Split(',');if?(string.IsNullOrWhiteSpace(smptHost)){return?"SmtpHost為空";}if?(string.IsNullOrWhiteSpace(userName)){return?"發件人為空";}if?(string.IsNullOrWhiteSpace(password)){return?"發件人密碼為空";}if?(mailToAddress.Length?==?0){return?"收件人列表為空";}var?mailContent?=?@"<html><head><title>郵件內容</title></head><body>"?+?content?+?"</body></html>";SetSmtp(smptHost,?userName,?password);SetMailMessage(title,?mailContent,?userName,?mailToAddress,?null,?null);try{Send();}catch?(Exception?ex){return?ex.Message;}return?null;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279787.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279787.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279787.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

初識smarty

個人體會(不完全正確)&#xff1a;就是smarty就是為了更好的使得php/html結合做出來的一個框架。 , 轉載于:https://www.cnblogs.com/nul1/p/9357694.html

幾個有趣的算法題目

本文首發 http://svtter.cn最接近的數字 題目 一個K位的數N $$ (K\leq2000&#xff0c;N\leq10^{20}) $$ 找出一個比N大且最接近的數&#xff0c;這個數的每位之和與N相同&#xff0c;用代碼實現之。 例如&#xff1a;0050 所求書數字為0104&#xff1b;112 所求數為121&#x…

獲取一篇新聞的全部信息

給定一篇新聞的鏈接newsUrl&#xff0c;獲取該新聞的全部信息 標題、作者、發布單位、審核、來源 發布時間:轉換成datetime類型 點擊&#xff1a; newsUrlnewsId(使用正則表達式re)clickUrl(str.format(newsId))requests.get(clickUrl)newClick(用字符串處理&#xff0c;或正則…

上twitter_如何在Twitter上更改您的顯示名稱

上twitterUnlike Facebook, Twitter has never insisted people user their real names. In fact, there’s a long tradition of people changing their names to a joke or pun because it’s Christmas or Halloween, or just for no reason at all. 與Facebook不同&#xf…

技術走向管理一些思考(1)-性格特質和自我管理

技術走向管理一些思考-文件夾 1&#xff0c;管理需具備的性格特質 贊賞他人&#xff1a;以一種不以自我為中心的合作的方式和他人相處&#xff0c;能平靜和客觀地接受不同的人。放下自己的性格、喜好&#xff0c;去贊賞不同類型的人。不是通過個人友誼或者熟悉程度。而是通過某…

網橋

配置實現網橋 網橋&#xff1a;即橋接 把一套機器上的若干個網絡接口 “連接” 起來&#xff0c;其結果是&#xff0c;其中一個網口收到的報文會被復制給其他網口并發送出去。以使得網口之間的報文能夠互相轉發。網橋就是這樣一個設備&#xff0c;它有若干個網口&#xff0c;并…

Newtonsoft.Json Deserialize Type 或者 同類型 變量 反序列化

Newtonsoft.Json 經常再用 這樣的需求 還是很少用 場景 方法一&#xff1a;根據 Type 反序列化 int demo 0; string jsongString JsonConvert.SerializeObject(demo); int jsonDemo JsonConvert.DeserializeObject(jsongString, demo.GetType()); 方法二 根據 同類型變量 序…

raspberry pi_在月光下將Raspberry Pi變成蒸汽機

raspberry piValve’s Steam Machines aim to bring your Steam game library right into your living room (but at a rather steep premium). Today we’ll show you how to bring your Steam library (plus all your other computer games) to your living room for a fract…

文檔測試【轉載】

原文來自&#xff1a;51Testing軟件測試網采編 作者&#xff1a; 仙靈測試(sinablog) 原文鏈接&#xff1a;http://www.51testing.com/html/61/n-237961.html 1、文檔的種類 ● 聯機幫助文檔或用戶手冊 這是人們最容易想到的文檔。用戶手冊是隨軟件發布而印制的小冊子…

NOI2019省選模擬賽 第三場

傳送門 明明沒參加過卻因為點進去結果狂掉\(rating\)…… \(A\) 集合 如果我們記 \[f_k\sum_{i1}^nT^i{n-i\choose k}\] 那么答案顯然就是\(f_{k-1}\) 然后就可以開始推倒了 \[ \begin{aligned} f_k &\sum_{i1}^nT^i{n-i\choose k}\\ &\sum_{i1}^nT^i{n-i-1\choose k}\…

MySql數據庫出現 1396錯誤

1、安裝MySql數據庫后。創建新的用戶。有可能會出現 1396這個錯誤&#xff0c; 2、解決的辦法如下&#xff1a;假裝有你需要創建的這個用戶、先刪了。再創建。 3、這樣就可以解決用戶創建不成功的問題了。 轉載于:https://www.cnblogs.com/chifa/p/9362882.html

如何使用wink框架_如何解決Wink Hub的Z-Wave連接問題

如何使用wink框架Overall, the Wink hub works extremely well…but sometimes the devices you have connected to it can act a little wonky. Here are some things you can do in order to fix any connection issues with all of those Z-Wave sensors and devices connec…

Tomcat服務器啟動錯誤之Offending class: javax/servlet/Servlet.class

引子 最近在基于Wex5項目開發中&#xff0c;遇到使用過程中與Tomcat功能有關的錯誤提示&#xff0c; 如題所示。最終的解決方法就是刪除掉項目上與tomcat沖突的jar包。 org.apache.catalina.loader.WebappClassLoader validateJarFile ??: validateJarFile(/Users/zxzpc/…

面向對象進階(二)----------類的內置方法

一、isinstance(obj,cls)和issubclass(sub,super) 1. isinstance(obj,cls): 檢查是否obj是否是類 cls 的對象 class Player:passp Player()print(isinstance(p, Player))>>> Ture 2. issubclass(sub, super): 檢查sub類是否是 super 類的派生類 class Player:passcla…

BZOJ.3265.志愿者招募加強版(費用流SPFA)

題目鏈接 見上題。 每類志愿者可能是若干段&#xff0c;不滿足那個...全幺模矩陣(全單位模矩陣)的條件&#xff0c;所以線性規劃可能存在非整數解。 于是就可以用費用流水過去順便拿個rank2 233. //20704kb 300ms #include <queue> #include <cstdio> #include &…

谷歌相冊_Google相冊中的新存檔功能是什么?

谷歌相冊If you’re a Google Photos user, you’ve may have seen a new feature called “Archive” show up in the app’s sidebar. if not, don’t stress—it’s just now rolling out and not everyone has it yet. Since it’s new, here’s a quick look at what it i…

CenterOS 7安裝Nginx

1.wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm下載對應當前系統版本的nginx包(package) 2.rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm建立nginx的yum倉庫 3.yum install nginx 下載并安裝nginx systemctl s…

Java的組合排列問題

從4個人中選2個人參加活動&#xff0c;一共有6種選法。 從n個人中選m個人參加活動&#xff0c;一共有多少種選法&#xff1f;C(m/n)C((m-1)/(n-1))C(m/(n-1))數學算法 public class Main {public static void main(String[] args) {System.out.println("請輸入總人數:&quo…

阿里云一鍵建站產品,阿里云自營建站-中小企業建站首選

阿里云推出的自營建站服務&#xff0c;這對于中小企業來說簡直是福利了&#xff0c;現在一般的公司都開始有了自己的官網&#xff0c;有可能就是因為你的官網設計的標準&#xff0c;大氣&#xff0c;客戶就會對你的信任度增加&#xff0c;從而促進一筆不小的訂單&#xff0c;這…

航拍拉近拉遠鏡頭_什么是遠攝鏡頭?

航拍拉近拉遠鏡頭Telephoto lenses can be incredibly useful, but how is it different from other lenses, and when should you use it? 遠攝鏡頭可能非常有用&#xff0c;但是它與其他鏡頭有什么不同&#xff1f;何時使用&#xff1f; 什么是遠攝鏡頭&#xff1f; (What I…