c# SendMail发送邮件实例代码

时间:2023-03-13 11:17:21 


using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using System.Text;

namespace Common
{
    /// <summary>
    /// 基于system.net.mail发送邮件,支持附件
    /// </summary>
    public class NetSendMail
    {
        public static void MailSend(string mailFrom, string maiFromlAccount, string mailFromPwd, string mailSmtpServer, IList<string> mailTo, IList<string> mailCC, IList<string> mailBCC, string mailTitle, string mailContent, IList<string> mailAttachments, System.Text.Encoding encoding, bool isBodyHtml)
        {
            MailMessage message = new MailMessage();
            if (mailFrom.Trim() == "")
            {
                throw new Exception("发送邮件不可以为空");
            }
            message.From = new MailAddress(mailFrom);
            if (mailTo.Count <= 0)
            {
                throw new Exception("接收邮件不可以为空");
            }
            foreach (string s in mailTo)
            {
                message.To.Add(new MailAddress(s));
            }
            if (mailCC.Count > 0)
            {
                foreach (string s in mailCC)
                {
                    message.CC.Add(new MailAddress(s));
                }
            }
            if (mailBCC.Count > 0)
            {
                foreach (string s in mailBCC)
                {
                    message.Bcc.Add(new MailAddress(s));
                }
            }
            message.Subject = mailTitle;
            message.Body = mailContent;
            message.BodyEncoding = encoding;   //邮件编码
            message.IsBodyHtml = isBodyHtml;      //内容格式是否是html
            message.Priority = MailPriority.High;  //设置发送的优先集
            //附件
            foreach (string att in mailAttachments)
            {
                message.Attachments.Add(new Attachment(att));
            }
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Host = mailSmtpServer;
            smtpClient.Credentials = new NetworkCredential(maiFromlAccount, mailFromPwd);
            smtpClient.Timeout = 1000;
            smtpClient.EnableSsl = false;        //不使用ssl连接
            smtpClient.Send(message);
        }

        public static void MailSendText(string mailFrom, string maiFromlAccount, string mailFromPwd, string mailSmtpServer, IList<string> mailTo, IList<string> mailCC, IList<string> mailBCC, string mailTitle, string mailContent)
        {
            List<string> attList = new List<string>();
            MailSend(mailFrom, maiFromlAccount, mailFromPwd, mailSmtpServer, mailTo, mailCC, mailBCC, mailTitle, mailContent, attList, Encoding.UTF8, false);
        }

        public static void MailSendHTML(string mailFrom, string maiFromlAccount, string mailFromPwd, string mailSmtpServer, IList<string> mailTo, IList<string> mailCC, IList<string> mailBCC, string mailTitle, string mailContent)
        {
            List<string> attList = new List<string>();
            MailSend(mailFrom, maiFromlAccount, mailFromPwd, mailSmtpServer, mailTo, mailCC, mailBCC, mailTitle, mailContent, attList, Encoding.UTF8, true);
        }
    }
}

标签:c#,SendMail,发送邮件
0
投稿

猜你喜欢

  • Java单例模式分析

    2023-11-16 03:17:06
  • java字符串常用操作方法(查找、截取、分割)

    2023-11-29 03:21:13
  • Java与Kotlin互调原理讲解

    2023-08-19 00:07:41
  • Android运用BroadcastReceiver实现强制下线

    2021-07-20 19:49:29
  • C# 获取客户端IPv4地址的示例代码

    2022-09-12 12:39:34
  • Java实现Excel导入导出的步骤详解

    2022-09-05 05:20:32
  • Java Servlet线程中AsyncContext异步处理Http请求

    2023-10-02 23:17:39
  • 基于android studio的layout的xml文件的创建方式

    2022-10-31 10:52:06
  • Spring Security登录添加验证码的实现过程

    2021-07-25 23:47:17
  • 为IObservable实现自己的运算符(详解)

    2022-04-02 08:58:15
  • Java线程休眠的5种方法

    2022-02-21 04:49:48
  • springboot ErrorPageFilter的实际应用详解

    2023-11-24 01:02:59
  • 简单了解java标识符的作用和命名规则

    2022-06-18 17:49:09
  • Mybatis 入门之MyBatis环境搭建(第一篇)

    2023-03-15 16:09:32
  • java和 javaw 及 javaws的区别解析

    2023-07-21 06:31:05
  • C#数组初始化简析

    2022-01-02 11:55:12
  • Android开发之TimePicker控件用法实例详解

    2022-02-10 10:18:50
  • Android实现环形进度条代码

    2023-06-08 11:09:55
  • Java将对象保存到文件中/从文件中读取对象的方法

    2022-06-18 21:26:42
  • Mybatis配置之typeAlias标签的用法

    2023-11-27 20:18:20
  • asp之家 软件编程 m.aspxhome.com