C# ASP.NET發送電子郵件System.Net.Mail


1.補充知識

(1)POP3和SMTP服務器是什么?

簡單點來說:POP3 用於接收電子郵件 ,SMTP 用於發送電子郵件。

(1)POP3具體指什么?

POP3(Post Office Protocol 3)即郵局協議的第3個版本,它是規定個人計算機如何連接到互聯網上的郵件服務器進行收發郵件的協議。它是因特網電子郵件的第一個離線協議標准,POP3協議允許用戶從服務器上把郵件存儲到本地主機(即自己的計算機)上,同時根據客戶端的操作刪除或保存在郵件服務器上的郵件,而POP3服務器則是遵循POP3協議的接收郵件服務器,用來接收電子郵件的。POP3協議是TCP/IP協議族中的一員,,由RFC 1939 定義

(2)SMTP具體是指什么?

SMTP的全稱是"Simple Mail Transfer Protocol",即簡單郵件傳輸協議。它是一組用於從源地址到目的地址傳輸郵件的規范,通過它來控制郵件的中轉方式。SMTP 協議屬於 TCP/IP 協議簇,它幫助每台計算機在發送或中轉信件時找到下一個目的地。SMTP 服務器就是遵循 SMTP 協議的發送郵件服務器。

 

2.System.Net.Mail

使用ASP.NET發送電子郵件,需要引用System.Net.Mail命名空間。System.Net.Mail 命名空間包含用於將電子郵件發送到簡單郵件傳輸協議 (SMTP) 服務器進行傳送的類。

(1)命名空間下有三個比較主要的類:

MailMessage:提供屬性和方法來創建一個郵件消息對象,即郵件內容。

Attachment:提供屬性和方法來創建一個郵件附件對象,即郵件附件。

SmtpClient:將電子郵件傳輸到您指定用於郵件傳送的 SMTP 主機。

(2)MailMessage類:

From:發送郵件的地址 
To:接收郵件的地址 
Subject:郵件的標題 
Priority:郵件的優先級(分別為為High,Low,Normal) 
Attachments:電子郵件的數據的附件集合
Bcc:密送地址 
Cc:抄送地址 
Body:郵件正文
SubjectEncoding:電子郵件的主題內容使用的編碼

IsBodyHtml:郵件正文是否為 Html 格式的值

詳細參考:MailMessage

(3)Attachment類:

詳細參考:Attachment

(4)SmtpClient類:

DeliveryMethod:指定如何處理待發的電子郵件

Host:SMTP 事務的主機的名稱或 IP 地址

Credentials:設置用於驗證發件人身份的憑據

詳細參考:SmtpClient

 

 3.ASP.NET發送郵件兩種方式

(1)通過郵件服務提供商的SMTP來發送郵件

首先需要注冊對應服務提供商免費郵箱,因為你要使用郵件服務提供商的SMTP,他們需要對身份進行驗證,這樣可以避免產生大量的垃圾郵件。

有三個是重要的信息:SMTP服務器、用戶名、密碼。從網上收集了幾個類,可以參考下。

 

#region
    /// <summary>
    /// 發送郵件
    /// </summary>
    /// <param name="mailTo">要發送的郵箱</param>
    /// <param name="mailSubject">郵箱主題</param>
    /// <param name="mailContent">郵箱內容</param>
    /// <returns>返回發送郵箱的結果</returns>
    public static bool SendEmail(string mailTo,string mailSubject,string mailContent)
    {
        // 設置發送方的郵件信息,例如使用網易的smtp
        string smtpServer = "smtp.163.com"; //SMTP服務器
        string mailFrom = "XXX@163.com"; //登陸用戶名
        string userPassword = "XXX";//登陸密碼

        // 郵件服務設置
        SmtpClient smtpClient=new SmtpClient();
        smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定電子郵件發送方式
        smtpClient.Host = smtpServer; //指定SMTP服務器
        smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用戶名和密碼

        // 發送郵件設置        
        MailMessage mailMessage = new MailMessage(mailFrom, mailTo); // 發送人和收件人
        mailMessage.Subject = mailSubject;//主題
        mailMessage.Body = mailContent;//內容
        mailMessage.BodyEncoding = Encoding.UTF8;//正文編碼
        mailMessage.IsBodyHtml = true;//設置為HTML格式
        mailMessage.Priority = MailPriority.Low;//優先級

        try
        {
            smtpClient.Send(mailMessage); // 發送郵件
            return true;
        }
        catch (SmtpException ex)
        {
            return false;
        }
    }

  

 

(2)利用本機的SMTP虛擬服務器的SMTP來發送郵件

需要進行SMTP配置,還是第一種簡單實用。

 

4.參考資料:常用郵件服務器

gmail.com:
POP3服務器地址:pop.gmail.com
SMTP服務器地址:smtp.gmail.com

qq.com:

POP3服務器地址:pop.qq.com
SMTP服務器地址:smtp.qq.com

163.com: 
POP3服務器地址:pop.163.com 
SMTP服務器地址:smtp.163.com 

sina.com: 

POP3服務器地址:pop3.sina.com.cn 
SMTP服務器地址:smtp.sina.com.cn 

yahoo.com: 
POP3服務器地址:pop.mail.yahoo.com 
SMTP服務器地址:smtp.mail.yahoo.com 

sohu.com: 
POP3服務器地址:pop3.sohu.com 
SMTP服務器地址:smtp.sohu.com 

china.com: 
POP3服務器地址:pop.china.com 
SMTP服務器地址:smtp.china.com 


21cn.com: 
POP3服務器地址:pop.21cn.com 
SMTP服務器地址:smtp.21cn.com sina.com: 

實例下載


免責聲明!

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



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