C# 發送郵件功能 整理


一、常見的郵箱類型有哪些?

    部分免費郵件SMTP服務器參考設置:

wKiom1WGr7mSK6vkAAGQOTI156I750.jpg

     另外如果是公司的郵箱發,如果host是exchange的話,端口也要用587而不是25.

一般企業的郵箱發送都不需要lient.EnableSsl = true;所以這行可以識具體情況添加。如果提識沒有相應的證書且就把lient.EnableSsl = true去掉即可。當然發送郵件是採用同步還是異步的方式就看項目要求了,如果採用同步發送,主UI界面會阻塞,所以最好是另外開一個線程來發郵件。郵件狀態可以通過委託來實現郵件發送狀態的顯示。


二、利用.net 的相關類庫進行郵件發送

      在.net2.0及之後版本,用System.Net.Mail發送郵件。主要用到了在.net2.0中新增的兩個類,分別是System.Net.Mail.MailMessageSystem.Net.Mail.SmtpClient兩個類,在SMTP身份驗證方面用到了System.Net.NetworkCredential類。

 

     1.  MailMessage  類表示郵件的內容

    MailMessage常用屬性

wKiom1WGtJXRRasNAASHMWZWZtE555.jpg

   組織好電子郵件後,可以使用 SendSendAsync 方法發送郵件

    

     2.  SmtpClient類用於將電子郵件發送到 SMTP 服務器以便傳遞

       SmtpClient常用屬性

wKioL1WGt0aR_zndAAMVCdCQd6I520.jpg


實例代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
namespace Mail_test
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 發送郵件程序
        /// </summary> 
        /// <param name="from">發送人郵件地址</param>
        /// <param name="fromname">發送人顯示名稱</param> 
        /// <param name="to">發送給誰(郵件地址)</param>
        /// <param name="subject">標題</param>
        /// <param name="body">內容</param> 
        /// <param name="username">郵件登錄名</param> 
        /// <param name="password">郵件密碼</param> 
        /// <param name="server">郵件服務器</param>
        /// <param name="fujian">附件</param>
        /// <returns>send ok</returns>
        /// 調用方法 SendMail("[email protected]", "某某人", "[email protected]", "你好", "我測試下郵件", "郵箱登錄名", "郵箱密碼", "smtp.126.com", "");
        private void button1_Click(object sender, EventArgs e)
        {
            string from = "從哪個郵箱發送";
            string fromname = "發送名字";
            string to="發送到哪個郵箱";
            string subject = "TEST";
            string body = "Excuse me,this is a test mail";
            string server = "郵箱服務器名稱";
            string username = "賬號";
            string password = "密碼";
            try
            {
                MailMessage mail = new MailMessage();//郵件發送類
                mail.From = new MailAddress(from, fromname);//是誰發送的郵件
                mail.To.Add(to);
                //mail.To.Add(new MailAddress(to, toname));//發送給誰 或者簡短的用 mail.To.Add(to)
                mail.Subject = subject; //標題
                mail.BodyEncoding = Encoding.Default; //內容編碼
                mail.Priority = MailPriority.Normal;//發送優先級
                mail.Body = body;//郵件內容
                mail.IsBodyHtml = false;//是否HTML形式發送
               
                SmtpClient smtp = new SmtpClient(server, 25);//郵件服務器和端口
                smtp.UseDefaultCredentials = false;
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //指定發送方式
                smtp.Credentials = new System.Net.NetworkCredential(username, password);//指定登錄名和密碼
                smtp.Timeout = 10000;//超時時間
                //smtp.EnableSsl = true;//經過ssl加密
                smtp.Send(mail);
                //return "send ok";
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章