• c#发送邮件,可发送多个附件


    1:创建SendMail类

    2:调用方法

    SendMail send = new SendMail("123456@qq.com", "123456@163.com", "邮件内容测试", "邮件标题测试", "mail20181224");
    send.Attachments(@"D:\工作\abc.txt");
    send.Attachments(@"D:\工作\123.txt");
    send.Send();

    ---------------------------------------------------------------------------------------------------下面是类-------------------------------------------------------------------------------------------------------------------------------

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Net.Mail;
    using System.Net.Mime;

    /// <summary>
    /// SendMail 的摘要说明
    /// </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);
    }
    }
    }

  • 相关阅读:
    浅谈Linux的内存管理机制
    [SCM]源码管理 perforce状态的检测
    轻松构建Mysql高可用集群系统
    [BuildRelease].NET代码静态检测FxCop
    Ant高级task
    Jenkins master在windows上安装
    Jenkins的Windows Slave的配置
    Jenkins的配置
    [BuildRelease]跨平台build脚本
    使用Synergy多台电脑共享键盘鼠标和剪贴板
  • 原文地址:https://www.cnblogs.com/missheyo/p/10234433.html
Copyright © 2020-2023  润新知