C#使用 System.Net.Mail发送邮件功能

C#使用 System.Net.Mail发送邮件功能

编码文章call10242025-03-06 11:48:3938A+A-

介绍

System.Net.Mail命名空间是在.NET Framework中新增的,该命名空间提供了发送电子邮件的功能。通过对本章的学习,读者可以轻松地使用.NET Framework提供的类库来发送电子邮件。System.Net.Mail 命名空间包含用于将电子邮件发送到SMTP服务器的类,这些类需要结合Microsoft SMTP Server一起使用。

System.Net.Mail 命名空间下有SmtpClient类用于发送邮件,可以完全代替SmtpMail类。利用SmtpClient类的Send方法可以完成发送电子邮件的传 输,也可以用SendAsync方法进行异步发送,后者发送完成后会产生一个SendCompleted 事件来通知发送结果。Send方法可以接受MailMessage类的对象作为参数。通过MailMessage类可以设置邮件更多的内容和格式,例如,为 Attachment类设置添加附件的参数。

SmtpClient 类与SMTP结合在一起,通过MailMessage类、MailAddress类、Attachment类来丰富电子邮件的内容和设置。图18-2展示 了用户通过System.Net.Mail命名空间下的类结合SMTP发送电子邮件的过程。

SmtpClient类的语法定义如下:

public class SmtpClient

下面的代码演示如何创 建一个SmtpClient的实例。

SmtpClient client = new SmtpClient (“smtp.Sina.com”); //直接通过构造函数设置SMTP 主机服务器

或:

SmtpClient client = new SmtpClient ();

Client. Host =” smtp.Sina.com”; //通过Host属性来设置SMTP 主机服务器

完整代码

 /// 
/// 邮件处理器
///

public class MailHandler
{
private MailMessage _mailMessage;
private string _host;
private string _userName;
private string _password;

public MailHandler()
{
}

///
/// 设置邮件信息
///

/// <param name="subject">主体
/// <param name="body">内容
/// <param name="from">发件人
/// <param name="to">收件人
/// <param name="cc">抄送人
/// <param name="bcc">密件抄送人
/// <param name="isBodyHtml">内容是否为Html
public void SetMailMessage(string subject, string body, string from, string[] to, string[] cc, string[] bcc, bool isBodyHtml = true)
{
_mailMessage = new MailMessage();
_mailMessage.Subject = subject;
_mailMessage.Body = body;
_mailMessage.IsBodyHtml = isBodyHtml;

_mailMessage.From = new MailAddress(from);
if (to != )
{
foreach (var item in to)
{
_mailMessage.To.Add(item);
}
}
if (cc != )
{
foreach (var item in cc)
{
_mailMessage.CC.Add(item);
}
}
if (bcc != )
{
foreach (var item in bcc)
{
_mailMessage.Bcc.Add(item);
}
}

_mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
}

///
/// 配置Smtp服务主机及身份验证
///

/// <param name="host">Smtp主机名或Ip
/// <param name="userName">用户名
/// <param name="password">密码
public void SetSmtp(string host, string userName, string password)
{
this._host = host;
this._userName = userName;
this._password = password;
}

///
/// 发送邮件
///

public void Send()
{
using (var sc = new SmtpClient())
{
sc.Host = _host;
sc.Port = 25;
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.Credentials = new System.Net.NetworkCredential(_userName, _password);
sc.Send(_mailMessage);
}
}

public string SendMail(string title, string content)
{
var smptHost = ConfigHelper.GetAppSetting("SmtpHost");
var userName = ConfigHelper.GetAppSetting("MailUserName");
var password = ConfigHelper.GetAppSetting("MailPassword");
var mailToAddress = ConfigHelper.GetAppSetting("MailAddress").Split(',');

if (string.IsOrWhiteSpace(smptHost))
{
return "SmtpHost为空";
}
if (string.IsOrWhiteSpace(userName))
{
return "发件人为空";
}
if (string.IsOrWhiteSpace(password))
{
return "发件人密码为空";
}
if (mailToAddress.Length == 0)
{
return "收件人列表为空";
}

var mailContent = @"邮件内容
"
+ content + "";

SetSmtp(smptHost, userName, password);
SetMailMessage(title, mailContent, userName, mailToAddress, , );

try
{
Send();
}
catch (Exception ex)
{
return ex.Message;
}
return ;
}
}


点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4