SmtpClient smtp = new SmtpClient(); //實例化一個SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //將smtp的出站方式設為 Network
smtp.EnableSsl = false;//smtp服務器是否啟用SSL加密
smtp.Host = "smtp.163.com"; //指定 smtp 服務器地址
smtp.Port = 25; //指定 smtp 服務器的端口,默認是25,如果采用默認端口,可省去
//如果你的SMTP服務器不需要身份認證,則使用下面的方式,不過,目前基本沒有不需要認證的了
smtp.UseDefaultCredentials = true;
//如果需要認證,則用下面的方式
smtp.Credentials = new NetworkCredential("a@163.com", "****");
MailMessage mm = new MailMessage(); //實例化一個郵件類
mm.Priority = MailPriority.High; //郵件的優先級,分為 Low, Normal, High,通常用 Normal即可
mm.From = new MailAddress("b@163.com", "真有意思測試", Encoding.GetEncoding(936));
//收件方看到的郵件來源;
//第一個參數是發信人郵件地址
//第二參數是發信人顯示的名稱
//第三個參數是 第二個參數所使用的編碼,如果指定不正確,則對方收到后顯示亂碼
//936是簡體中文的codepage值
//注:上面的郵件來源,一定要和你登錄郵箱的帳號一致,否則會認證失敗
mm.ReplyTo = new MailAddress("b@163.com", "我的接收郵箱", Encoding.GetEncoding(936));
//ReplyTo 表示對方回復郵件時默認的接收地址,即:你用一個郵箱發信,但卻用另一個來收信
//上面后兩個參數的意義, 同 From 的意義
//mm.CC.Add("a@163.com,b@163.com,c@163.com");
//郵件的抄送者,支持群發,多個郵件地址之間用 半角逗號 分開
//當然也可以用全地址,如下:
mm.CC.Add(new MailAddress("c@163.com", "抄送者A", Encoding.GetEncoding(936)));
//mm.CC.Add(new MailAddress("b@163.com", "抄送者B", Encoding.GetEncoding(936)));
//mm.CC.Add(new MailAddress("c@163.com", "抄送者C", Encoding.GetEncoding(936)));
//mm.Bcc.Add("d@163.com,e@163.com");
//郵件的密送者,支持群發,多個郵件地址之間用 半角逗號 分開
//當然也可以用全地址,如下:
//mm.CC.Add(new MailAddress("d@163.com", "密送者D", Encoding.GetEncoding(936)));
//mm.CC.Add(new MailAddress("e@163.com", "密送者E", Encoding.GetEncoding(936)));
//mm.Sender = new MailAddress("xxx@xxx.com", "郵件發送者", Encoding.GetEncoding(936));
//可以任意設置,此信息包含在郵件頭中,但並不會驗證有效性,也不會顯示給收件人
//說實話,我不知道有啥實際作用,大家可不理會,也可不寫此項
//mm.To.Add("g@163.com,h@163.com");
//郵件的接收者,支持群發,多個地址之間用 半角逗號 分開
//當然也可以用全地址添加
mm.To.Add(new MailAddress("g@163.com", "接收者g", Encoding.GetEncoding(936)));
//mm.To.Add(new MailAddress("h@163.com", "接收者h", Encoding.GetEncoding(936)));
mm.Subject = "這是郵件標題-測試"; //郵件標題
mm.SubjectEncoding = Encoding.GetEncoding(936);
// 這里非常重要,如果你的郵件標題包含中文,這里一定要指定,否則對方收到的極有可能是亂碼。
// 936是簡體中文的pagecode,如果是英文標題,這句可以忽略不用
mm.IsBodyHtml = true; //郵件正文是否是HTML格式
mm.BodyEncoding = Encoding.GetEncoding(936);
//郵件正文的編碼, 設置不正確, 接收者會收到亂碼
mm.Body = "<font color=\"red\">郵件測試,呵呵</font>";
//郵件正文
mm.Attachments.Add(new Attachment(@"c:\d\1.doc", System.Net.Mime.MediaTypeNames.Application.Rtf));
//添加附件,第二個參數,表示附件的文件類型,可以不用指定
//可以添加多個附件
//mm.Attachments.Add(new Attachment(@"d:b.doc"));
smtp.Send(mm); //發送郵件,如果不返回異常, 則大功告成了。
}
二、
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Net;
using System.Configuration;
/// <summary>
/// 發郵件模塊
/// Author:tonyepaper.cnblogs.com
/// </summary>
public class Mail
{
private string senderAddress;
/// <summary>
/// 發件人
/// </summary>
public string SenderAddress
{
get { return senderAddress; }
set { senderAddress = value; }
}
private string receiverAddess;
/// <summary>
/// 收件人
/// </summary>
public string ReceiverAddess
{
get { return receiverAddess; }
set { receiverAddess = value; }
}
private string subject;
/// <summary>
/// 主題
/// </summary>
public string Subject
{
get { return subject; }
set { subject = value; }
}
private string body;
/// <summary>
/// 內容
/// </summary>
public string Body
{
get { return body; }
set { body = value; }
}
private string smtpHost;
/// <summary>
/// SMTP主機
/// </summary>
public string SmtpHost
{
get { return smtpHost; }
set { smtpHost = value; }
}
private int smtpPort;
/// <summary>
/// SMTP端口
/// </summary>
public int SmtpPort
{
get { return smtpPort; }
set { smtpPort = value; }
}
private string smtpPassword;
/// <summary>
/// SMTP密碼
/// </summary>
public string Password
{
get { return smtpPassword; }
set { this.smtpPassword = value; }
}
/// <summary>
/// 初始化發件人
/// </summary>
public Mail()
{
senderAddress = "qiugen114@gmail.com";
smtpPassword ="*****";
smtpHost = "smtp.gmail.com";
smtpPort = 587;
}
/// <summary>
/// 郵件
/// </summary>
/// <param name="receiverAddess">收件人地址</param>
/// <param name="subject">主題</param>
/// <param name="body">內容</param>
public Mail(string receiverAddess, string subject, string body)
: this()
{
this.receiverAddess = receiverAddess;
this.subject = subject;
this.body = body;
}
/// <summary>
/// 發送郵件
/// </summary>
public bool Send()
{
MailMessage mailMessage = new MailMessage(senderAddress, receiverAddess);
mailMessage.Subject = subject;
mailMessage.Body = body;
SmtpClient smtpClient = new SmtpClient(smtpHost, smtpPort);
//使用SSL加密連線
smtpClient.EnableSsl = true;
NetworkCredential networkCredential = new NetworkCredential(senderAddress, smtpPassword);
smtpClient.Credentials = networkCredential;
try
{
smtpClient.Send(mailMessage);
return true;
}
catch (Exception ex)
{
return false;
}
}
//調用
protected void Button1_Click(object sender, EventArgs e)
{
Mail mail = new Mail("claymore1114@163.com", "aaaa", "aaaaaa");//初始化收件人
mail.Send();
}
