公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

使用C#和.Net通過SMTP發(fā)送郵件詳解

admin
2017年11月8日 0:0 本文熱度 7906

    到目前為止,發(fā)電子郵件已經(jīng)不是什么新聞了,.Net中包含郵件客戶端并不足為奇。一個(gè)老的編程事實(shí)任然有效:所有程序?qū)U(kuò)大到包括最終發(fā)送(接收)的電子郵件。因此,如何增加電子郵件到您的程序?此帖探討我們?nèi)绾文軌蚴褂肧ystem.Mail.SmtpClient發(fā)送格式化電子郵件。有許多可供選擇的選項(xiàng),我們將探討其中的大多數(shù)。

   十五年以后事情變得相當(dāng)容易.發(fā)送電子郵件最直接的就是調(diào)用一些基本的庫函數(shù)和.Net的一些固定的實(shí)現(xiàn)。

快速發(fā)送電子郵件
如果您迫不及待的話,可以使用下面帶有4字符串參數(shù)的
構(gòu)造函數(shù)創(chuàng)建一個(gè)簡單的郵件。
// public client.Send(string from,string to,string subject,string body)
using System.Net.Mail;
SmtpClient client = new SmtpClient();
client.Send("
[email protected]","[email protected]","Testing!","If this break again,.. I won''t know what to do");
在上面的例子中的電子郵件使用系統(tǒng)的NET框架默認(rèn)設(shè)置為發(fā)現(xiàn)的發(fā)送的。如果你對什么自己系統(tǒng)作為默認(rèn)的SMTP服務(wù)器感到好奇,您可以查詢SmtpClient.Host
Console.WriteLine("Default SMTP Server: {0}",client.Host);
請注意,有可能.NET libraries是無法制訂SMTP主機(jī),當(dāng)您嘗試發(fā)送電子郵件會(huì)失敗并出現(xiàn)System.InvalidOperationException ( SMTP主機(jī)未指定)的異常。

發(fā)送一封合適的郵件
一個(gè)基本的電子郵箱是一個(gè)發(fā)件人,一個(gè)或多個(gè)收件人的郵件正文和一個(gè)或多個(gè)附件組成的。當(dāng)然,電子郵件可能是一種過時(shí)的俄羅斯字體的編碼。
MailAddress toUser = new MailAddress("
[email protected]");
MailAddress toUser2 = new MailAddress("
[email protected]","Martijn Dijksterhuis");
MailAddress toUser3 = new MailAddress("
[email protected]","Martijn Dijksterhuis", System.Text.Encoding.UTF8);
名字中不包括任何特殊的字符,所以指定默認(rèn)的UTF - 8編碼。
 
發(fā)送一封只有單一的發(fā)送和接收者的電子郵件
如果您的電子郵件只包含一個(gè)單一的發(fā)送者和一個(gè)接收者,MailMessage ( MailAddress From, MailAddress To)構(gòu)造函數(shù)提供了所有您所需要的。它創(chuàng)建一個(gè)新的電子郵件的結(jié)構(gòu),分配發(fā)送者和接收者的構(gòu)造方法。
MailAddress toUser = new MailAddress("
[email protected]");
MailAddress fromUser = new MailAddress("
[email protected]");
MailMessage msg  = new MailMessage(fromUser,toUser);
 
增加更多相同的電子郵件的接收者
一個(gè)單一的收件人可能是不夠的。不要擔(dān)心,您可以添加許多人到你的電子郵件,只要你想。
msg.To.Add( new MailAddress("
[email protected]") );
msg.CC.Add( new MailAddress("
[email protected]") );
 msg.CC.Add( new MailAddress("
[email protected]") );
msg.Bcc.Add( new MailAddress("
[email protected]") );
 
設(shè)置電子郵件主題和內(nèi)容
設(shè)置電子郵件的主題,并不難,只需通過Msg.Subject設(shè)置它 。如果你可以使用如Unicode的其他方式編碼。
msg.Subject = "我的心太亂"
msg.SubjectEncoding = Encoding.GetEncoding("big5");
 
以非常類似的方式來設(shè)置郵件正文
msg.Body = "Dear Customer, " + Environment.NewLine + Environment.NewLine;
msg.Body += "Because of repeated violations of our terms and conditions we had no choice but to";
msg.Body += "terminate your account with us." + Environment.NewLine + Environment.NewLine;
msg.Body += "The Management";
msg.BodyEncoding = System.Text.Encoding.UTF8;
 
添加附件到電子郵件
電子郵件可以擁有一個(gè)以上的附件,每個(gè)附件的繼承于System.Net.Mail.Attachment類。您可以通過調(diào)用" Attachments.Add ( ) "把它們添加到附件容器。
using System.Net.Mime;
Attachment firstAttachment = new Attachment("document.doc",MediaTypeNames.Application.Octet);
MailMessage msg  = new MailMessage(fromUser,toUser);
msg.Attachments.Add(firstAttachement);
 
第一個(gè)參數(shù)傳遞給構(gòu)造函數(shù)是包含附件的路徑。如果沒有完整的路徑,給出了當(dāng)前的工作目錄。該文件類型的在System.Net.Mime中定義 -可用選項(xiàng)有:
MediaTypeNamesApplicationOctet
  PDF
  RTF
  Soap
  Zip
 ImageGif
  JPEG
  Tiff
 TextHTML
  Plain
  RichText
  XML

如果該類型的文件未指定使用MediaTypesNames.Application.Octet ,怎顯示"數(shù)據(jù)沒有解釋。 " 
 
添加自定義電子郵件標(biāo)題到您的電子郵箱
Msg.Header屬性允許查詢和添加.NET框架所設(shè)定的電子郵件標(biāo)題。全新的電子郵件將只包含一個(gè)標(biāo)題: "Mine: 1.0 " 。
MailMessage Msg = new MailMessage(new  MailAddress("
[email protected]"),newMailAddress("[email protected]"));
 
// Add a custom header to the e-mail
Msg.Headers.Add("X-Header","2.0");
 
// Display all the message headers.
string[] Keys = Msg.Headers.AllKeys;
foreach (string s in Keys) 
Console.WriteLine("{0}: {1}", s,Msg.Headers[s]);
 
用SmtpClient發(fā)送電子郵件
  通過the SmtpClient class發(fā)送電子郵件的艱巨工作實(shí)際只需要下面兩行代碼:
SmtpClient client = new SmtpClient();
client.Send(Msg);
 
SmtpFailedRecipientsException: The message could not be delivered to one or more of the recipients in To, CC, or Bcc.
SmtpException : Connection failed, authentication failed or a time-out
ArgumentNullException / ArgumentOutOfRangeException / InvalidOperationException : Something wrong with the input fields of the e-mail
 
如果您沒有指定任何參數(shù),SmtpClient默認(rèn)構(gòu)造函數(shù)將查找使用.NET環(huán)境。
SMTP服務(wù)器
您可以通過第二構(gòu)造方法指定一個(gè)特定的服務(wù)器和可選端口
SmtpClient client = new SmtpClient("mail.dijksterhuis.org",3000); 
 
上述SmtpClient.Send是阻塞調(diào)用-當(dāng)電子郵件傳送時(shí)您的應(yīng)用程序應(yīng)停止。當(dāng)然也有一個(gè)

異步調(diào)用: SmtpClient.SendAsync 。
使用SmtpClient.SendAsync是多做一點(diǎn)工作。如何做到這一點(diǎn)請看以下示例:
using System;

using System.Net.Mail;

using System.Threading;

using System.ComponentModel;

namespace SnmpMailer

  

  class MainClass   

        

   static Semaphore mailSendSemaphore;        

   private static void MailSendCallback(object sender, AsyncCompletedEventArgs arg)  

             

      // Get our unique token for this asynchronous operation.           

     String token = (string) arg.UserState;            

      // Did the user abort the sent ?           

     if (arg.Cancelled)               

        Console.WriteLine("[{0}] Send canceled.", token);         

      // Did an error occur during the send?           

     if (arg.Error != null)                

        Console.WriteLine("[{0}] {1}", token, arg.Error.ToString());              

      else               

        Console.WriteLine("Message sent succesfully!");            

      // Release the main thread           

      mailSendSemaphore.Release();       

            

 

  public static void Main(string[] args)       

            

   mailSendSemaphore = new Semaphore(0,1);   

   // Create the mail message with to & from   

    MailMessage Msg = new MailMessage(new MailAddress("[email protected]"), 

                    new MailAddress("[email protected]"));            

    Msg.Body = "Dear Customer, " + Environment.NewLine + Environment.NewLine;   

    Msg.Body += "Because of repeated violations of our terms and conditions we had

                no choice  but to";           

    Msg.Body += "terminate your account with us." + Environment.NewLine   

               Environment.NewLine;   

    Msg.Body += "The Management";           

    Msg.BodyEncoding = System.Text.Encoding.UTF8;   

    // Set the subject           

    Msg.Subject = "Termination of service notice"; 

    // Add our own header           

    Msg.Headers.Add("X-Deliverator","Terminator");    

    // Deliver the message in an asynchronous fashion           

    SmtpClient Deliverator = new SmtpClient("mymailserver.com");   

    // Print the default client           

    Console.WriteLine("Default SMTP Server: {0}",Deliverator.Host);  

    // Specify the call back function           

    Deliverator.SendCompleted += new SendCompletedEventHandle(MailSendCallback); 

    // For an asyncronous call we can pass a token to help us determine

    //  the message being send  

    Deliverator.SendAsync(Msg,"Msg ID 1212");   

    // Because we have little else to do, we set a semaphore and wait               

    mailSendSemaphore.WaitOne();            

    Console.WriteLine("Mail delivery finished");       

      

  }

}


該文章在 2017/11/8 0:00:48 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产成人av无码片在线观看 | 国产精品制服丝袜四区 | 国产一区二区免费播放 | 国产一区二区三区四 | 精品国产一区 | 国产精品午夜福利久久久 | 91国语精品自产拍在线观看 | 国产丝袜无码精品一区二区三区 | 国产交换配乱婬视频a免费 国产交换配乱婬视频手机版 | 91在线国产专区精品 | 国产精品美女一区二区视频 | 国产成人av黄色大片 | 国产综合一千收藏 | 精品无码人妻一区二区三区品 | 国产一级av国片免费变态 | 18禁无遮挡羞羞啪啪免费网站 | 2025国产精品偷 | 国精品无码一区二区三 | 精品一区二区高清免费观 | 国产迷奸在线观看 | 91精品成| 国产无套粉嫩白浆在线观看 | 国产精品一区在线观看 | 国产精品制服一区二区 | 18国产精品白浆在线观看免费 | 成人免费午夜无码视频在线观看 | 国产成人精品一区二区三区不卡 | 精品亚洲av无码综合网 | 国产三级野外直播在线 | 2025国产麻豆剧传媒精品网站 | 国产精品无码无片在线观看3d | 国产精品白丝网站 | 国产成人精品一区二区三区视 | 国模少妇一区二区三区 | 国产成人av在线亚洲天堂在线观看 | 国产人妖x0x0| 国产美女免费视频 | 国产精品免费无遮挡无码永久视 | 91一级特黄大片 | 国产亚洲视频在线播放无水印 | 91在线无码精品秘入口竹美 |