zoukankan      html  css  js  c++  java
  • C#使用简单邮件传输协议(SMTP)发送邮件

    1、首先引入命名空间:

    using System.Net.Mail;

    2、定义邮件配置类:

        public class EmailServiceConfig
        {
            /// <summary>
            /// 服务地址。
            /// </summary>
            public String ServiceAddress { get; set; }
    
            /// <summary>
            /// 端口号。
            /// </summary>
            public Int32 Port { get; set; }
    
            /// <summary>
            /// 发件人名。
            /// </summary>
            public String DisplayName { get; set; }
    
            /// <summary>
            /// 用户名。
            /// </summary>
            public String Username { get; set; }
    
            /// <summary>
            /// 密码。
            /// </summary>
            public String Password { get; set; }
        }
    View Code

    3、定义邮件内容类:

        public class EmailMessage
        {
            /// <summary>
            /// 邮件接收人
            /// </summary>
            public String[] Receivers { get; set; }
    
            /// <summary>
            /// 邮件抄送人
            /// </summary>
            public String[] CC { get; set; }
    
            /// <summary>
            /// 邮件主题
            /// </summary>
            public String Subject { get; set; }
    
            /// <summary>
            /// 邮件正文
            /// </summary>
            public String Content { get; set; }
        }
    View Code

    4、定义邮件帮助类:

        public class EmailHelper
        {
            /// <summary>
            /// 配置
            /// </summary>
            private EmailServiceConfig _config;
    
            private SmtpClient _client = new SmtpClient();
    
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="message"></param>
            public void Send(EmailMessage message)
            {
                MailMessage mailMessage = new MailMessage();
                mailMessage.From = new MailAddress(_config.Username, _config.DisplayName);
                message.Receivers.ToList().ForEach(c => mailMessage.To.Add(c));
                message.CC.ToList().ForEach(c => mailMessage.CC.Add(c));
                mailMessage.Subject = message.Subject;
                mailMessage.IsBodyHtml = true;
                mailMessage.Body = message.Content;
                mailMessage.BodyEncoding = Encoding.UTF8;
                mailMessage.Priority = MailPriority.High;
                _client.Send(mailMessage);
            }
    
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="config"></param>
            public EmailHelper(EmailServiceConfig config)
            {
                if (config == null)
                {
                    throw new Exception("配置不能为空。");
                }
                if (string.IsNullOrEmpty(config.ServiceAddress))
                {
                    throw new Exception("服务地址不能为空。");
                }
                if (string.IsNullOrEmpty(config.Username))
                {
                    throw new Exception("用户名不能为空。");
                }
                if (string.IsNullOrEmpty(config.Password))
                {
                    throw new Exception("密码不能为空。");
                }
    
                _config = config;
                _client = new SmtpClient(config.ServiceAddress,config.Port);
                _client.UseDefaultCredentials = false;
                _client.EnableSsl = false;
                _client.Credentials = new System.Net.NetworkCredential(config.Username, config.Password);
                _client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            }
        }
    View Code

    5、调用帮助类发送邮件:

            private static void Main(string[] args)
            {
                try
                {
                    // 初始化配置
                    var config = new EmailServiceConfig()
                    {
                        ServiceAddress = "smtp.qq.com",
                        Port = 25,
                        DisplayName = "发件人名",
                        Username = "123@qq.com",
                        Password = "******"
                    };
    
                    //初始化邮件内容
                    var message = new EmailMessage()
                    {
                        Receivers = new string[] { "abcd@qq.com" },
                        CC = new string[] { "xyz@qq.com" },
                        Subject = "这里是邮件主题",
                        Content = "这里是邮件内容"
                    };
    
                    //实例邮件帮助类并发送邮件
                    var emailHelper = new EmailHelper(config);
                    emailHelper.Send(message);
    
                    Console.WriteLine("发送成功!");
                }
                catch (Exception ex)
                {
                    Console.WriteLine("发送失败!");
                    Console.WriteLine("错误信息:" + ex.Message);
                }
    
                Console.ReadLine();
            }
    View Code
  • 相关阅读:
    SpringBoot通过注解获取接口信息
    2.2.0Nginx代理与负载均衡
    1.1Nginx概述
    Nginx安装整合
    每日日报27
    PHP所遇问题——注意:未定义的索引
    每日日报26
    每日日报25
    每日日报24
    每日日报23
  • 原文地址:https://www.cnblogs.com/zhuyongblogs/p/5210460.html
Copyright © 2011-2022 走看看