代码段——发送邮件

  • 简单的发送邮件方法
        /// <summary>
        /// 发送电子邮件。
        /// </summary>
        /// <param name="from">发件人邮箱地址。</param>
        /// <param name="to">收件人邮箱地址。</param>
        /// <param name="subject">邮件主题。</param>
        /// <param name="body">邮件正文。</param>
        /// <param name="isHtml">邮件正文是否是HTML。</param>
        /// <param name="smtpHost">SMTP 服务器地址。</param>
        /// <param name="smtpPort">SMTP 服务器端,例如Gmail是587,Microsoft 365是587或25(需要SSL)</param>
        /// <param name="smtpEnableSsl">是否启用 SSL。</param>
        /// <param name="smtpUser">SMTP 用户名。</param>
        /// <param name="smtpPassword">SMTP 密码。</param>
        /// <param name="attachments">要添加的附件文件路径列表。</param>
        public static void SendEmail(string from, string to, string subject, string body,bool isHtml ,string smtpHost, int smtpPort, bool smtpEnableSsl, string smtpUser, string smtpPassword, List<string> attachments = null)
        {
            try
            {
                // 创建邮件消息对象
                MailMessage mail = new MailMessage(from, to, subject, body);
                mail.IsBodyHtml = isHtml;

                // 添加附件
                if (attachments != null)
                {
                    foreach (string attachmentPath in attachments)
                    {
                        mail.Attachments.Add(new Attachment(attachmentPath));
                    }
                }

                // 创建SmtpClient对象并配置SMTP服务器
                SmtpClient smtp = new SmtpClient(smtpHost)
                {
                    Port = smtpPort,
                    Credentials = new NetworkCredential(smtpUser, smtpPassword),
                    EnableSsl = smtpEnableSsl
                };

                // 发送邮件
                smtp.Send(mail);
                Console.WriteLine("邮件发送成功!");
            }
            catch (SmtpException ex)
            {
                Console.WriteLine("邮件发送失败(SMTP错误):" + ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("邮件发送失败:" + ex.Message);
            }
        }
  • 测试
        private static void Main(string[] args)
        {
            // WriteLog("Windows任务计划", "开始", "执行");
            //SendEmail();

            // SMTP 配置信息
            string smtpHost = "mail.XXXXX.com";
            int smtpPort = 25;
            bool smtpEnableSsl = true;
            string smtpUser = "AAAAA@XXXXX.com";
            string smtpPassword = "your email password";

            // 要发送的附件路径
            List<string> attachments =new List<string> () { @"D:\VS安装文档.png", @"D:\SqlServer2022安装文档.png" };

            SendEmail(
                from: "AAAAA@XXXXX.com",
                to: "BBBBB@XXXXX.com",
                subject: "测试邮件",
                body: "这是测试邮件的正文。",
                isHtml: false,
                smtpHost: smtpHost,
                smtpPort: smtpPort,
                smtpEnableSsl: smtpEnableSsl,
                smtpUser: smtpUser,
                smtpPassword: smtpPassword,
                attachments:attachments
            );
            Console.ReadKey();

        }
posted @   shanzm  阅读(0)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
TOP
点击右上角即可分享
微信分享提示