.net中如何实现邮件发送功能
1、新建MailHelper类,将需要用到的包引入到文件中,具体引入方法如下:
using System;
using System.Net;
using System.Net.Mail;

2、编写邮件的发送方法,主要使用到了MailMessage、SmtpClient类型,MailMessage主要是组装邮件的内容,SmtpClient连接服务器,并发送。首选,设置邮件内容:
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;

3、然后,设置邮件的服务器地址及端口,设置邮件的用户名和密码,具体实现如下:
SmtpClient smtpclient = new SmtpClient(MailServer, 25);
smtpclient.Credentials = new System.Net.NetworkCredential(MailUserName, MailPassword);
//SSL连接
smtpclient.EnableSsl = enableSsl;
smtpclient.Send(message);

4、将上述的方法编写的方法,组装成一个方法,这样可以方便调用,如下:
/// <summary>
/// 同步发送邮件
/// </summary>
/// <param name="to">收件人邮箱地址</param>
/// <param name="subject">主题</param>
/// <param name="body">内容</param>
/// <param name="encoding">编码</param>
/// <param name="isBodyHtml">是否Html</param>
/// <param name="enableSsl">是否SSL加密连接</param>
/// <returns>是否成功</returns>
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;
}
}

5、编写上述方法后,直接用方法,可以实现发送邮件的功能,具体调用方法如下:
MailHelper mail = new MailHelper();
mail.MailServer = Configs.GetValue("MailHost");
mail.MailUserName = Configs.GetValue("MailUserName");
mail.MailPassword = Configs.GetValue("MailPassword");
mail.MailName = "我是小编";
mail.SendByThread(account, title, content);
return Success("发送成功。");
