C#发送邮件

基础调用类:

public class EmailHelper{/// <summary>/// 发件人名称/// </summary>public string MailName { get; set; }/// <summary>/// 收件人/// </summary>public string MailTo { get; set; }/// <summary>/// 密送/// </summary>public string MailBCC { get; set; }/// <summary>/// 抄送/// </summary>public string MailCC { get; set; }/// <summary>/// 主题/// </summary>public string MailSubject { get; set; }/// <summary>/// 内容/// </summary>public string MailHTMLBody { get; set; }/// <summary>/// 附加/// </summary>public string MailAttachments { get; set; }public string MailAttachments2 { get; set; }//第二个附件public bool Send(ref string message){try{//發送郵件            MailMessage myEmail = new MailMessage();myEmail.From = new MailAddress(string.Format("{0}@xxxxx.com.cn", MailName));//mail from//myEmail.To.Add(new MailAddress(MailTo));string[] MailToAll = MailTo.Split(';');for (int i = 0; i < MailToAll.Length; i++){myEmail.To.Add(new MailAddress(MailToAll[i]));}// 設定密送 2022-10-21 tomif (!string.IsNullOrEmpty(MailBCC)){string[] MailBCCAll = MailBCC.Split(';');for (int i = 0; i < MailBCCAll.Length; i++){myEmail.Bcc.Add(new MailAddress(MailBCCAll[i]));}}myEmail.Subject = MailSubject;//郵件主題if (MailAttachments != null){myEmail.Attachments.Add(new Attachment(MailAttachments));}//myEmail.Attachments.Add(new Attachment(MailAttachments));if (MailAttachments2 != null){myEmail.Attachments.Add(new Attachment(MailAttachments2));}AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(MailHTMLBody, null, "text/html");myEmail.AlternateViews.Add(htmlBody);myEmail.BodyEncoding = Encoding.UTF8; //編碼格式myEmail.Priority = MailPriority.Normal; //重要性 SmtpClient smtp = new SmtpClient();smtp.UseDefaultCredentials = true;smtp.Port = 25;smtp.Host = "10.3.1.1";smtp.EnableSsl = false;smtp.Send(myEmail);message = "发送成功";return true;}catch (System.Exception ex){message = ex.ToString();return false;}}}

调用类:

 //郵件發送public bool emails(string MailFrom, string MailTo, string MailSubject, string Content, string FilePath){try{EmailHelper EMAIL = new EmailHelper();messageString = "生成成功";EMAIL.MailName = MailFrom + System.DateTime.Now.ToString("yyyyMMdd");EMAIL.MailTo = MailTo;//EMAIL.MailTo = mEmailResult;//EMAIL.MailCC = "Kay@xxxxx.com.cn;";//EMAIL.MailBCC = "Kay@xxxxx.com.cn";EMAIL.MailSubject = MailSubject + DateTime.Now.ToString("yyyy-MM-dd");EMAIL.MailHTMLBody = "<table>";EMAIL.MailHTMLBody = "<table><tr><td>Dear Sirs:</td></tr><tr><td>&nbsp;</td></tr><tr><td style='color:red'>" + Content + "</td></tr>";EMAIL.MailHTMLBody += "<tr><td><span style='background:aqua;mso-highlight:aqua'></span></td></tr></table>";//EMAIL.MailAttachments = fileName;EMAIL.MailAttachments = FilePath;resultBool = EMAIL.Send(ref messageString);return true;if (!resultBool){messageString = "郵件發送失敗!" + messageString;return false;}}catch (Exception ex){return false;}}

实例:

            string filePath = "产量.xlsx"; // 替换为你的文件路径MailFrom = "Information";//发件人MailTo = "Kay@xxxxx.com.cn;Dai@xxxxx.com.cn";//收件人MailSubject = "测试数据";//主题Content ="" +Line_N + "-每小时产量.xlsx 附件,请查收!";//附件if (emails(MailFrom, MailTo, MailSubject, Content, filePath)){MessageBox.Show("发送成功");}else{MessageBox.Show("发送失败");}

以上代码可以在项目中添加一个按钮进行测试。

结语:本文主要分享如何用C#代码发送信息给邮件,亲测可用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21195.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java语法-集合

Java语法 Day19 晨考 Collections工具类 /* Collection 集合工具类 此类中的方法全部为静态方法 此类种提供了用于操作集合的各种方法swap(List<?> list,int i,int j) 交换指定位置的集合中的元素 sort(List<T> list,Comparator<? super T> c) 根…

网络缓存加速技术解析:从诞生到演进

目录 早期探索&#xff1a;浏览器缓存的出现 网络架构升级&#xff1a;代理服务器缓存的应用 全球化加速&#xff1a;CDN 缓存的崛起深入了解CDNhttps://blog.csdn.net/m0_68472908/article/details/145744082?spm1001.2014.3001.5501 技术革新&#xff1a;HTTP/2 协议带来…

深度学习的力量:精准肿瘤检测从此不再遥远

目录 引言 一、医学图像分析的挑战与深度学习的优势 1.1 医学图像分析的挑战 1.2 深度学习的优势 二、肿瘤检测的深度学习模型设计 2.1 卷积神经网络&#xff08;CNN&#xff09;的基本原理 2.2 网络架构设计 2.3 模型训练 三、肿瘤检测中的挑战与解决方案 3.1 数据不…

蓝桥杯学习大纲

&#xff08;致酷德与热爱算法、编程的小伙伴们&#xff09; 在查阅了相当多的资料后&#xff0c;发现没有那篇博客、文章很符合我们备战蓝桥杯的学习路径。所以&#xff0c;干脆自己整理一篇&#xff0c;欢迎大家补充&#xff01; 一、蓝桥必备高频考点 我们以此为重点学习…

利用AFE+MCU构建电池管理系统(BMS)

前言 实际BMS项目中&#xff0c;可能会综合考虑成本、可拓展、通信交互等&#xff0c;用AFE&#xff08;模拟前端&#xff09;MCU&#xff08;微控制器&#xff09;实现BMS&#xff08;电池管理系统&#xff09;。 希望看到这篇博客的朋友能指出错误或提供改进建议。 有纰漏…

RT-Thread+STM32L475VET6实现呼吸灯

文章目录 前言一、板载资源资源说明二、具体步骤1.新建rt_thread项目2. 打开PWM设备驱动3. 在Stm32CubeMX配置定时器3.1打开Stm32CubeMX3.2 使用外部高速时钟&#xff0c;并修改时钟树3.3打开定时器1&#xff0c;并配置通道一为PWM输出模式(定时器根据自己需求调整)3.4 打开串口…

新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)

视频教程和更多福利在我主页简介或专栏里 &#xff08;不懂都可以来问我 专栏找我哦&#xff09; 如果对你有帮助你可以来专栏找我&#xff0c;我可以无偿分享给你对你更有帮助的一些经验和资料哦 目录&#xff1a; 一、XSS的三种类型&#xff1a; 二、XSS攻击的危害&#x…

详解TCP协议多种机制

1.TCP报文格式 为了方便后续各位深入理解TCP机制&#xff0c;我们有必要先了解一下TCP的报文格式&#xff0c;首先我们先来看如下图 第四行那六个单词分别有不同的作用&#xff0c;初始为0&#xff0c;无作用&#xff0c;置为1即代表不同作用&#xff0c;具体后面会介绍。 我…

Python蓝桥杯刷题-小数第n位详解

题目描述 我们知道&#xff0c;整数做除法时&#xff0c;有时得到有限小数&#xff0c;有时得到无限循环小数。 如果我们把有限小数的末尾加上无限多个 0&#xff0c;它们就有了统一的形式。 本题的任务是&#xff1a;在上面的约定下&#xff0c;求整数除法小数点后的第 n 位开…

android,flutter 混合开发,pigeon通信,传参

文章目录 app效果native和flutter通信的基础知识1. 编解码器 一致性和完整性&#xff0c;安全性&#xff0c;性能优化2. android代码3. dart代码 1. 创建flutter_module2.修改 Android 项目的 settings.gradle&#xff0c;添加 Flutter module3. 在 Android app 的 build.gradl…

Redis 客户端C++使用

安装 redis-plus-plus 在C中使用Redis&#xff0c;通常需要借助第三方库来实现与Redis服务器的交互。目前比较流行的库有 redis-plus-plus 和 hiredis。redis-plus-plus 是基于 hiredis 实现的&#xff0c;hiredis 是⼀个 C 语⾔实现的 redis 客⼾端&#xff0c;因此需要先安装…

Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究

基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…

亲测Windows部署Ollama+WebUI可视化

一. Ollama下载 登录Ollama官网(Ollama)点击Download进行下载 如果下载很慢可用以下地址下载&#xff1a; https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官网上&#xff0c;你可以直接点击【model】 到达这个界面之后&#xff0c;…

SpringBoot2.0整合Redis(Lettuce版本)

前言&#xff1a; 目前java操作redis的客户端有jedis跟Lettuce。在springboot1.x系列中&#xff0c;其中使用的是jedis, 但是到了springboot2.x其中使用的是Lettuce。 因为我们的版本是springboot2.x系列&#xff0c;所以今天使用的是Lettuce。关于jedis跟lettuce的区别&#…

自由学习记录(36)

Linux Linux 是一个开源的操作系统&#xff0c;其内核及大部分组件都遵循自由软件许可证&#xff08;如 GPL&#xff09;&#xff0c;允许用户查看、修改和分发代码。这种开放性使得开发者和企业可以根据自己的需求定制系统​。 “Linux”严格来说只是指由Linus Torvalds最初开…

【数据分享】1929-2024年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2024年全球气象站…

如何使用Redis实现分布式锁

通常情况下&#xff0c;我们一般会选择基于 Redis 或者 ZooKeeper 实现分布式锁&#xff0c;Redis 用的要更多一点&#xff0c;我这里也先以 Redis 为例介绍分布式锁的实现。 基于 Redis 实现分布式锁 如何基于 Redis 实现一个最简易的分布式锁&#xff1f; 不论是本地锁还是…

【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)

背景需求&#xff1a; 做了中班的四类活动安排表&#xff0c;我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法&#xff08;分散运动、户外游戏、个别化&#xff08;美工室图书吧探索室&#xff09;&#xff09;-CSDN博客文章浏览阅读874次&#xff0…

scroll、offset、client三大家族和getBoundingClientRect方法

scroll、offset、client三大家族和getBoundingClientRect方法 1.offset(只能读,不能修改&#xff09;2.client(只能读,不能修改&#xff09;3.scroll滚动家族4.getBoundingClientRect方法 1.offset(只能读,不能修改&#xff09; offsetParent:离当前元素最近的有定位的祖先元素…

【LeetCode】LCR 139. 训练计划 I

题目 教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性&#xff0c;需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以 数组 形式返回。 示例 1&#xff1a; 输入&#xff1a;actions [1,2,3,4,5] 输出&#…