在命名空間using System.Net.Mail中提供方法根據指定的smtp服務器來發送郵件。下面說說如何實現:
1、首先要發送郵件,需要有一個郵箱帳號,比如網易郵箱、新郎郵箱、qq郵箱等,我以網易的163郵箱為例。然後我們需要知道163郵箱的smtp服務器地址:smtp.163.com。一般常用的Smtp服務器地址為:
網易126:smtp.126.com
網易163:smtp.163.com
搜狐:smtp.sohu.com
新浪:smtp.sina.com.cn
雅虎:smtp.mail.yahoo.com
2、現在我們可以開始實現了。在新建的C# Console Application中,需要加入兩個命名空間:
using System.Net.Mail; //新建郵件、發送郵件需要用到 3、下面是發送郵件的函數:
public static void SendEmail(
string userEmail, //發件人郵箱
string userPswd, //郵箱帳號密碼
string toEmail, //收件人郵箱
string mailServer, //郵件服務器
string subject, //郵件標題
string mailBody, //郵件內容
string[] attachFiles //郵件附件
)
{
//郵箱帳號的登錄名
string username = userEmail.Substring(0, userEmail.IndexOf(@));
//郵件發送者
MailAddress from = new MailAddress(userEmail);
//郵件接收者
MailAddress to = new MailAddress(toEmail);
MailMessage mailobj = new MailMessage(from, to);
// 添加發送和抄送
// mailobj.To.Add("");
// mailobj.CC.Add("");
//郵件標題
mailobj.Subject = subject;
//郵件內容
mailobj.Body = mailBody;
foreach (string attach in attachFiles)
{
mailobj.Attachments.Add(new Attachment(attach));
}
//郵件不是html格式
mailobj.IsBodyHtml = false;
//郵件編碼格式
mailobj.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
//郵件優先級
mailobj.Priority = MailPriority.High;
//Initializes a new instance of the System.Net.Mail.SmtpClient class
//that sends e-mail by using the specified SMTP server.
SmtpClient smtp = new SmtpClient(mailServer);
//或者用:
//SmtpClient smtp = new SmtpClient();
//smtp.Host = mailServer;
//不使用默認憑據訪問服務器
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential(username, userPswd);
//使用network發送到smtp服務器
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
//開始發送郵件
smtp.Send(mailobj);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
4、好了,你也可以去試試給自己的應用程序加上發送郵件的功能了。