SMTP協議


這段時間在看網絡高級編程,對於SMTP協議C#進行了很多封裝,使我們使用起來相當方便

SMTP是英文Simple Mail Transfer Protocol的縮寫,意為簡單郵件傳輸協議,默認端口為25

在SMTP協議中,電子郵件由三部分組成,信封、首部和正文。

1) 信封

信封包括發信人的郵件地址和接收人的郵件地址,用兩條SMTP命令指明。

 ① MAIL FROM:<發信人的地址>,告訴SMTP服務器發信人的地址。

 ② RCPT TO:<收信人的地址>,告訴SMTP服務器收信人的地址。

2) 首部

首部中常用命令:

① FROM:<姓名><郵件地址>,表明郵件發送者是誰。

② TO:<姓名><郵件地址>,表明郵件接收者是誰。

③ SUBJECT:<郵件標題>,表明郵件的主題。

④ DATE:<時間>,表明發郵件的時間。

⑤ REPLY-TO:<郵件地址>,表明郵件的回復地址。

⑥ Content-Type:<郵件類型>,表明郵件包含文本、HTML超文本和附件的哪些類型。

⑦ X-Priority:<郵件優先級>,表明郵件的發送優先級。

⑧MIME-Version:<版本>,MIME的意思是Multipurpose Internet Mail Extensions,即多用途Internet郵件擴展標准,它對傳輸內容的消息、附件及其他的內容定義了格式。

 3) 正文

    正文是郵件的內容。首部以一個空行結束,再下面就是正文部分。

 4) 結束符號

    郵件以“.”結束。

對於C#發送郵件我們只需要了解幾個基本的類就行了

 1) System.Net命名空間下的NetworkCredential類

NetworkCredential myCredentials = new NetworkCredential("發件人郵件地址", "密碼");//提供發件人的用戶名發密碼

MailAddress類用於提供發件人和收件人的郵件地址,常用形式為:

MailAddress from = new MailAddress("發件人郵件地址");

MailAddress to = new MailAddress("收件人郵件地址");

MailMessage類用於提供郵件的信息,包括主題、內容、附件、信息類型等,常用形式為:

MailMessage message = new MailMessage(from, to);

message.Subject = "主題";

message.SubjectEncoding = System.Text.Encoding.UTF8;

message.Body = "郵件內容";

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

Attachment類用於提供附件對象,常用形式為

Attachment attachFile = new Attachment("文件名");

message.Attachments.Add(attachFile);

5) SmtpClient類用於發送郵件,常用形式為:

SmtpClient client = new SmtpClient("郵件服務器地址");

client.Send(message);

發送郵件方法:

  private void SendMail(SmtpClient client, MailAddress from, string p, MailAddress to, MailMessage message)
        {
            //不使用默認憑證,注意此句必須放在client.Credentials的上面
            client.UseDefaultCredentials = false;
            //指定用戶名和密碼
            client.Credentials = new NetworkCredential(from.Address, p);
            //郵件通過網絡發送到服務器
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            try
            {
                client.Send(message);
            }
            catch { throw; }
            finally
            {
                //及時釋放占用資源
                message.Dispose();
            }
        }

 

以上幾個類就能實現C#對SMTP協議的使用,能進行郵件的基本發送,相對來說很簡單,都不需要調用SMTP的相關命令

下面的例子就是對上面的幾個類的運用,能進行郵件的發送/Files/fujinliang/SendMailExample.rar 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM