1. 程式人生 > >C#實現SMTP郵件發送程序實例

C#實現SMTP郵件發送程序實例

lin ice 效果 using exceptio length string false ack

通常來說郵件發送功能在網站應用程序中經常會用到,包括大家經常看到的博客,在添加評論後,系統會自動發送郵件通知到我郵箱的,把系統發送郵件的功能整理了下,本文展示了一個客戶端Demo,希望對有需要的朋友有所幫助。運行效果如下圖所示:

技術分享圖片

核心代碼如下:


代碼如下:

using System;

using System.Net;

using System.Net.Mail;

using System.Text;

namespace HC.Email

{

/// <summary>

/// 整站郵件服務類

/// </summary>

public class EmailService

{

/// <summary>

/// 發送郵件

/// </summary>

/// <param name=”mailTo”>收件人

/// <param name=”subject”>主題

/// <param name=”body”>內容

/// <returns></returns>

public static bool Send(string mailTo, string subject, string body)

{

return Send(new[] {mailTo}, null, subject, body, true, null);

}

/// <summary>

/// 發送郵件

/// </summary>

/// <param name=”mailTo”>收件人

/// <param name=”subject”>主題

/// <param name=”body”>內容

/// <returns></returns>

public static bool Send(string[] mailTo, string subject, string body)

{

return Send(mailTo, null, subject, body, true, null);

}

/// <summary>

/// 發送郵件

/// </summary>

/// <param name=”mailTo”>收件人

/// <param name=”subject”>主題

/// <param name=”body”>內容

/// <param name=”attachmentsPath”>附件

/// <returns></returns>

public static bool Send(string[] mailTo, string subject, string body, string[] attachmentsPath)

{

return Send(mailTo, null, subject, body, true, attachmentsPath);

}

/// <summary>

/// 發送郵件

/// </summary>

/// <param name=”mailTo”>收件人

/// <param name=”mailCcArray”>抄送

/// <param name=”subject”>主題

/// <param name=”body”>內容

/// <param name=”isBodyHtml”>是否Html

/// <param name=”attachmentsPath”>附件

/// <returns></returns>

public static bool Send(string[] mailTo, string[] mailCcArray, string subject,string body, bool isBodyHtml,

string[] attachmentsPath)

{

try

{

var config = ConfigHelper.GetConfig<emailconfig>();

if (string.IsNullOrEmpty(config.Host) ||string.IsNullOrEmpty(config.UserName) ||

string.IsNullOrEmpty(config.Port) ||string.IsNullOrEmpty(config.Password))

{

//todo:記錄日誌

return false;

}

var @from = new MailAddress(config.MailFrom); //使用指定的郵件地址初始化MailAddress實例

var message = new MailMessage(); //初始化MailMessage實例

//向收件人地址集合添加郵件地址

if (mailTo != null)

{

foreach (string t in mailTo)

{

message.To.Add(t);

}

}

//向抄送收件人地址集合添加郵件地址

if (mailCcArray != null)

{

foreach (string t in mailCcArray)

{

message.CC.Add(t);

}

}

//發件人地址

message.From = @from;

//電子郵件的標題

message.Subject = subject;

//電子郵件的主題內容使用的編碼

message.SubjectEncoding = Encoding.UTF8;

//電子郵件正文

message.Body = body;

//電子郵件正文的編碼

message.BodyEncoding = Encoding.Default;

message.Priority = MailPriority.High;

message.IsBodyHtml = isBodyHtml;

//在有附件的情況下添加附件

if (attachmentsPath != null && attachmentsPath.Length > 0)

{

foreach (string path in attachmentsPath)

{

var attachFile = new Attachment(path);

message.Attachments.Add(attachFile);

}

}

try

{

var smtp = new SmtpClient

{

Credentials = new NetworkCredential(config.UserName, config.Password),

Host = config.Host,

Port = Convert.ToInt32(config.Port)

};

//將郵件發送到SMTP郵件服務器

smtp.Send(message);

//todo:記錄日誌

return true;

}

catch (SmtpException ex)

{

//todo:記錄日誌

return false;

}

}

catch (SmtpException ex)

{

//todo:記錄日誌

return false;

}

}

}

}

完整實例代碼點擊此處

希望本文所述對大家的C#程序設計有所幫助

除聲明外,跑步客文章均為原創,轉載請以鏈接形式標明本文地址
C#實現SMTP郵件發送程序實例

本文地址: http://www.paobuke.com/develop/c-develop/pbk23448.html






相關內容

技術分享圖片C#窗體控件DataGridView常用設置技術分享圖片windows下C#定時管理器框架Task.MainForm詳解技術分享圖片MessageBox的Buttons和三級聯動效果技術分享圖片C#實現DataTable,List和Json轉換的方法
技術分享圖片C# 設計模式系列教程-命令模式技術分享圖片C#獲取串口列表實現實時監控串口技術分享圖片C#實現綁定DataGridView與TextBox之間關聯的方法技術分享圖片C#采用OpenXml給Word文檔添加表格

C#實現SMTP郵件發送程序實例