您的位置:首页 > 编程语言 > C#

C#发送邮件代码

2011-09-21 16:28 453 查看
 
using System;

using System.Net;

using System.Net.Mail;

using System.Net.Mime;

namespace Fish

{

    /**//// <summary>

    /// 发送邮件的类

    /// </summary>

    public class SendMail

    {

        private MailMessage mailMessage;

        private SmtpClient smtpClient;

        private string password;//发件人密码

        /**//// <summary>

        /// 处审核后类的实例

        /// </summary>

        /// <param name="To">收件人地址</param>

        /// <param name="From">发件人地址</param>

        /// <param name="Body">邮件正文</param>

        /// <param name="Title">邮件的主题</param>

        /// <param name="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(',');

            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);//添加到附件中

            }

        }

        /**//// <summary>

        /// 异步发送邮件

        /// </summary>

        /// <param name="CompletedMethod"></param>

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

            }

        }

        /**//// <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);

            }

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# string path null system class