北大青鸟

首页 > .Net技术教程

站内公告

.Net培训:.Net使用SmtpClient发送邮件

责任编辑:宏鹏来源:武汉北大青鸟鲁广校区时间:04-22
导读: 北大青鸟武汉宏鹏鲁广校区老师解读:.Net使用SmtpClient发送邮件

北大青鸟武汉宏鹏鲁广校区老师解读:.Net使用SmtpClient发送邮件

从网上找了一个封装。Net的Smtp邮件发送的类

[csharp]

class MailSender

{

private MailMessage mailMessage;

private SmtpClient smtpClient;

private string password;//发件人密码

///

/// 处审核后类的实例

///

/// 收件人地址

/// 发件人地址

/// 邮件正文

/// 邮件的主题

/// 发件人密码

public MailSender(string To, string From, string Body, string Title, string Password)

{

mailMessage = new MailMessage();

mailMessage.To.Add(To);

mailMessage.From = new System.Net.Mail.MailAddress(From);

mailMessage.Subject = Title;

mailMessage.Body = Body;

mailMessage.IsBodyHtml = true;

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

mailMessage.Priority = System.Net.Mail.MailPriority.Normal;

this.password = Password;

}

///

/// 添加附件

///

public void Attachments(string Path)

{

string[] path = Path.Split(',');

Attachment data;

ContentDisposition disposition;

for (int i = 0; i < path.Length; i++)

{

data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件

disposition = data.ContentDisposition;

disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期

disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期

disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期

mailMessage.Attachments.Add(data);//添加到附件中

}

}

///

/// 异步发送邮件

///

///

public void SendAsync(SendCompletedEventHandler CompletedMethod)

{

if (mailMessage != null)

{

smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mailMessage.From.Host;

smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件

smtpClient.SendAsync(mailMessage, mailMessage.Body);

}

}

///

/// 发送邮件

///

public void Send()

{

if (mailMessage != null)

{

smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mailMessage.From.Host;

smtpClient.Send(mailMessage);

}

}

}

class MailSender

{

private MailMessage mailMessage;

private SmtpClient smtpClient;

private string password;//发件人密码

///

/// 处审核后类的实例

///

/// 收件人地址

/// 发件人地址

/// 邮件正文

/// 邮件的主题

/// 发件人密码

public MailSender(string To, string From, string Body, string Title, string Password)

{

mailMessage = new MailMessage();

mailMessage.To.Add(To);

mailMessage.From = new System.Net.Mail.MailAddress(From);

mailMessage.Subject = Title;

mailMessage.Body = Body;

mailMessage.IsBodyHtml = true;

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

mailMessage.Priority = System.Net.Mail.MailPriority.Normal;

this.password = Password;

}

///

/// 添加附件

///

public void Attachments(string Path)

{

string[] path = Path.Split(',');

Attachment data;

ContentDisposition disposition;

for (int i = 0; i < path.Length; i++)

{

data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件

disposition = data.ContentDisposition;

disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期

disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期

disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期

mailMessage.Attachments.Add(data);//添加到附件中

}

}

///

/// 异步发送邮件

///

///

public void SendAsync(SendCompletedEventHandler CompletedMethod)

{

if (mailMessage != null)

{

smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mailMessage.From.Host;

smtpClient.SendCompleted += new SendCompletedEventHandler(CompletedMethod);//注册异步发送邮件完成时的事件

smtpClient.SendAsync(mailMessage, mailMessage.Body);

}

}

///

/// 发送邮件

///

public void Send()

{

if (mailMessage != null)

{

smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mailMessage.From.Host;

smtpClient.Send(mailMessage);

}

}

}

使用某些邮箱的时候会报错(如sohu):不允许使用邮箱名称,服务器响应为: xxx.需要设置单独的用户名,故修改了下,并做了一些优化。如下:

[csharp]

class MailSender

{

private readonly MailMessage mail;

private readonly string password;//发件人密码

private readonly string user;

///

/// 处审核后类的实例

///

/// 收件人地址

/// 发件人地址

/// 邮件正文

/// 邮件的主题

/// 发件人账号

/// 发件人密码

public MailSender(string to, string from, string body, string subject, string sendAccount, string sendPassword)

{

mail = new MailMessage();

mail.To.Add(to);

mail.From = new MailAddress(from);

mail.Subject = subject;

mail.Body = body;

mail.IsBodyHtml = true;

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

mail.Priority = MailPriority.Normal;

this.password = sendPassword;

this.user = sendAccount;

}

///

/// 添加附件

///

public void Attachments(string path)

{

string[] pathes = path.Split(',');

for (int i = 0; i < pathes.Length; i++)

{

var data = new Attachment(pathes[i], MediaTypeNames.Application.Octet);//实例化附件

var disposition = data.ContentDisposition;

disposition.CreationDate = System.IO.File.GetCreationTime(pathes[i]);//获取附件的创建日期

disposition.ModificationDate = System.IO.File.GetLastWriteTime(pathes[i]);//获取附件的修改日期

disposition.ReadDate = System.IO.File.GetLastAccessTime(pathes[i]);//获取附件的读取日期

mail.Attachments.Add(data);//添加到附件中

}

}

///

/// 异步发送邮件

///

///

public void SendAsync(SendCompletedEventHandler CompletedMethod)

{

if (mail != null)

{

var smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mail.From.Host;

smtpClient.SendCompleted += CompletedMethod;//注册异步发送邮件完成时的事件

smtpClient.SendAsync(mail, mail.Body);

}

}

///

/// 发送邮件

///

public void Send()

{

if (mail != null)

{

var smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mail.From.Host;

smtpClient.Send(mail);

}

}

}

class MailSender

{

private readonly MailMessage mail;

private readonly string password;//发件人密码

private readonly string user;

///

/// 处审核后类的实例

///

/// 收件人地址

/// 发件人地址

/// 邮件正文

/// 邮件的主题

/// 发件人账号

/// 发件人密码

public MailSender(string to, string from, string body, string subject, string sendAccount, string sendPassword)

{

mail = new MailMessage();

mail.To.Add(to);

mail.From = new MailAddress(from);

mail.Subject = subject;

mail.Body = body;

mail.IsBodyHtml = true;

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

mail.Priority = MailPriority.Normal;

this.password = sendPassword;

this.user = sendAccount;

}

///

/// 添加附件

///

public void Attachments(string path)

{

string[] pathes = path.Split(',');

for (int i = 0; i < pathes.Length; i++)

{

var data = new Attachment(pathes[i], MediaTypeNames.Application.Octet);//实例化附件

var disposition = data.ContentDisposition;

disposition.CreationDate = System.IO.File.GetCreationTime(pathes[i]);//获取附件的创建日期

disposition.ModificationDate = System.IO.File.GetLastWriteTime(pathes[i]);//获取附件的修改日期

disposition.ReadDate = System.IO.File.GetLastAccessTime(pathes[i]);//获取附件的读取日期

mail.Attachments.Add(data);//添加到附件中

}

}

///

/// 异步发送邮件

///

///

public void SendAsync(SendCompletedEventHandler CompletedMethod)

{

if (mail != null)

{

var smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mail.From.Host;

smtpClient.SendCompleted += CompletedMethod;//注册异步发送邮件完成时的事件

smtpClient.SendAsync(mail, mail.Body);

}

}

///

/// 发送邮件

///

public void Send()

{

if (mail != null)

{

var smtpClient = new SmtpClient();

smtpClient.Credentials = new System.Net.NetworkCredential(user, password);//设置发件人身份的票据

smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

smtpClient.Host = "smtp." + mail.From.Host;

smtpClient.Send(mail);

}

}

}

    看过该.Net技术教程的还看过

本文标题:.Net培训:.Net使用SmtpClient发送邮件,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于04-22发布于北大青鸟鲁广校区。 北大青鸟武汉宏鹏鲁广校区老师解读:.Net使用SmtpClient发送邮件

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

本文地址:https://m.027hpedu.com/html/2544.html

文章标题:.Net培训:.Net使用SmtpClient发送邮件

上一篇:

下一篇:

热点关注

推荐.Net技术教程

热门.Net技术教程

初中生
高中生
大学生
打工者
男生
女生

预约你的精彩未来

预约将免费领取7天课程体验卡

-------请选择试预约课程-------

JAVA
WEB前端
PHP
UI设计
Python
电子商务
视频剪辑
大数据工程师
平面设计

83345人已领取

全国百余家校区

只为您方便就学

北大青鸟鲁广校区

北大青鸟鲁广校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出)

预约到校
领取学习大礼包

首页

热门课程

视频网课

新闻资讯

关于学校

联系学校

预约选课申请

  • 预约时间

    请选择预约时间

  • 预约课程

    请选择预约课程

  • 姓   名
  • 手机号
  • QQ 号
  • 微信号

添加老师微信号

专业老师24小时1对1学习指导

定制专属于你的专属学习方案

微信号:17740513250

复制老师的微信号

复制成功啦

快去微信添加老师为好友吧~

北大青鸟小青

微信号:17740513250

北大青鸟小青

微信号:17740513250

设置备注
小主知道啦