C#发送邮件代码

本文介绍了一个使用 C# 实现的发送带附件电子邮件的类。该类支持通过 SMTP 服务器同步或异步发送邮件,并允许设置邮件的发件人、收件人、主题、正文以及附件。

using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
namespace Fish
{
/**/ /// <summary>
/// 发送邮件的类
/// </summary>

public class SendMail
{
private MailMessagemailMessage;
private SmtpClientsmtpClient;
private string password; // 发件人密码
/**/ /// <summary>
/// 处审核后类的实例
/// </summary>
/// <paramname="To"> 收件人地址 </param>
/// <paramname="From"> 发件人地址 </param>
/// <paramname="Body"> 邮件正文 </param>
/// <paramname="Title"> 邮件的主题 </param>
/// <paramname="Password"> 发件人密码 </param>

public SendMail( 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;
}

/**/ /// <summary>
/// 添加附件
/// </summary>

public void Attachments( string Path)
{
string []path = Path.Split( ' , ' );
Attachmentdata;
ContentDispositiondisposition;
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);
// 添加到附件中
}

}

/**/ /// <summary>
/// 异步发送邮件
/// </summary>
/// <paramname="CompletedMethod"></param>

public void SendAsync(SendCompletedEventHandlerCompletedMethod)
{
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);
}

}

/**/ /// <summary>
/// 发送邮件
/// </summary>

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);
}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值