您的位置首页生活百科

.Net C#邮件发送功能

.Net C#邮件发送功能

实际项目中,有很多地方需要使用到邮件通知,本文简要介绍如何开发一个简单的邮件发送功能。

第一步,新建一个类,类名为:MailHelper

第二步,申明邮件所需要的参数,如下:

///

/// 邮件服务器地址

///

public string MailServer { get; set; }

///

/// 用户名

///

public string MailUserName { get; set; }

///

/// 密码

///

public string MailPassword { get; set; }

///

/// 名称

///

public string MailName { get; set; }

第三部:编写同步发送邮件的方法:

///

/// 同步发送邮件

///

/// 收件人邮箱地址

/// 主题

/// 内容

/// 编码

/// 是否Html

/// 是否SSL加密连接

/// 是否成功

public bool Send(string to, string subject, string body, string encoding = "UTF-8", bool isBodyHtml = true, bool enableSsl = false)

{

try

{

MailMessage message = new MailMessage();

// 接收人邮箱地址

message.To.Add(new MailAddress(to));

//发送方

message.From = new MailAddress(MailUserName, MailName);

//编码

message.BodyEncoding = Encoding.GetEncoding(encoding);

message.Body = body;

//GB2312

message.SubjectEncoding = Encoding.GetEncoding(encoding);

//标题

message.Subject = subject;

message.IsBodyHtml = isBodyHtml;

SmtpClient smtpclient = new SmtpClient(MailServer, 25);//创建邮件发送实例

smtpclient.Credentials = new System.Net.NetworkCredential(MailUserName, MailPassword);

//SSL连接

smtpclient.EnableSsl = enableSsl;

smtpclient.Send(message);

return true;

}

catch (Exception)

{

throw;

}

}

第四步,添加异步发送邮件的方法:

///

/// 异步发送邮件 独立线程

///

/// 邮件接收人

/// 邮件标题

/// 邮件内容

/// 端口号

///

public void SendByThread(string to, string title, string body, int port = 25)

{

new Thread(new ThreadStart(delegate()

{

try

{

SmtpClient smtp = new SmtpClient();

//邮箱的smtp地址

smtp.Host = MailServer;

//端口号

smtp.Port = port;

//构建发件人的身份凭据类

smtp.Credentials = new NetworkCredential(MailUserName, MailPassword);

//构建消息类

MailMessage objMailMessage = new MailMessage();

//设置优先级

objMailMessage.Priority = MailPriority.High;

//消息发送人

objMailMessage.From = new MailAddress(MailUserName, MailName, System.Text.Encoding.UTF8);

//收件人

objMailMessage.To.Add(to);

//标题

objMailMessage.Subject = title.Trim();

//标题字符编码

objMailMessage.SubjectEncoding = System.Text.Encoding.UTF8;

//正文

objMailMessage.Body = body.Trim();

objMailMessage.IsBodyHtml = true;

//内容字符编码

objMailMessage.BodyEncoding = System.Text.Encoding.UTF8;

//发送

smtp.Send(objMailMessage);

}

catch (Exception)

{

throw;

}

})).Start();

}

第五步:在需要调用邮件发送的地方,调用不同的方法,传入不同的参数