zoukankan      html  css  js  c++  java
  • C# 邮件发送

    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();
    foreach (var item in To)
    {
    mailMessage.To.Add(item);
    }
    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)
    {
    using (smtpClient = new SmtpClient())
    {
    smtpClient.Timeout = 9999999;
    smtpClient.EnableSsl = true;
    smtpClient.UseDefaultCredentials = false;
    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);
    mailMessage.Attachments.Dispose();
    }
    }
    }
    }

  • 相关阅读:
    窥探算法之美妙——详细讲解寻找最长重复字符串的原理
    窥探算法之美妙——寻找数组中最小的K个数&python中巧用最大堆
    窥探算法之美妙——统计整数二进制中1的个数
    第一次向开源项目贡献代码的历程
    编写高质量代码--改善python程序的建议(八)
    Mysql数据类型TINYINT(1)与BOOLEAN踩坑记
    Mysql Hash索引和B-Tree索引区别(Comparison of B-Tree and Hash Indexes)
    详解计算机中的Byte、bit、字、字长、字节
    什么是不忘初心
    最简单的JS实现json转csv
  • 原文地址:https://www.cnblogs.com/freedomlan/p/13184891.html
Copyright © 2011-2022 走看看