当前位置: 首页 > news >正文

C#-WinForm-发送邮件

登录QQ邮箱——设置——开启“POP3/SMTP服务”

登陆QQ邮箱→打开设置→开启“POP3/SMTP服务”,获取“授权码”

简单总结一下:
1、使用SmtpClient发送电子邮件是很简单的,只要正确创建了MailMessage对象和SmtpClient就可以很容易的发送出去电子邮件。
2、如果电子邮件服务器需要身份验证【似乎现在都需要身份验证,除非自己配置的】,注意下面这句话:
client.Credentials = .Credentials = new System.Net.NetworkCredential("发件邮箱", "授权码");

邮箱通过第三方发送邮件应该使用授权码,不是登陆密码而是授权码;

邮件发送协议为SMTP,强大的.net类库已经为我们封装好了SMTP协议, 位于System.Net.Mail命名空间之下
主要类:
SmtpClient  使用SMTP协议进行发送邮件,
MailMessage  封装一个邮件,包括发件人地址,收件人地址,SMTP服务器地址等常用设置。
System.Net.NetworkCredential封装用户的用户名和密码,验证凭据类。
MailAddress     邮件地址,发件人或者收件人地址

首先,使用初始化SmtpClient的一些基本设置


smtpClient.Host = "smtp.xx.com";    //设置smtp服务器地址,xx代表服务器提供商
smtpClient.Port = 25;               //smtp服务器端口号
smtpClient.EnableSsl = false;      //是否使用SSL加密
smtpClient.UseDefaultCredentials = false;    
smtpClient.Credentials = new NetworkCredential("用户名","密码");   //发件人账户和密码,即是用户凭证
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;            //传输方式    

再次,构建要发送的邮件内容

mailMessage.From = new MailAddress("发件人地址");
//收件人地址十一mailAddressCollection容器,也为群发邮件提供了便利,不断Add收件人地址就可以了
mailMessage.To.Add(new MailAddress("收件人地址")); 
mailMessage.Subject = "邮件主题"; 
mailMessage.Body = "邮件正文";

最后,发送邮件

// SmtpClient提供了两个发送函数,一个同步发送Send、一个异步发送SendAsync。不过这个异步发送不是有保证,经常发布出去smtpClient.Send(mailMessage);

相关文章:

C#-WinForm-发送邮件

登录QQ邮箱——设置——开启“POP3/SMTP服务” 登陆QQ邮箱→打开设置→开启“POP3/SMTP服务”,获取“授权码” 简单总结一下: 1、使用SmtpClient发送电子邮件是很简单的,只要正确创建了MailMessage对象和SmtpClient就可以很容易的发送出去电…...

Springboot整合jdbc和Mybatis

目录 整合jdbc 1. 新建项目 2. 编写yaml配置文件连接数据库 3. 测试类 使用原生的jdbcTemplate进行访问测试 使用Druid连接池 1. 添加类型 2. 初始化连接池 3. 编写config类 配置Druid数据源监视 整合Mybatis 1. 导入依赖 2. 编写mapper接口 3. 编写实体类 4. 编…...

日常生活中的常用命令及操作

目录 一、Windows11 中查看网卡名称 及ip地址 二、查看硬件的详细信息 三、查看显卡声卡详细信息及厂商 四、C盘清理 第一步 输入wini 开启Windows设置主界面 第二步 存储中还有一个叫存储感知的功能 第三步 更改新内容的保存位置 第四步 怕误C盘内的东西可以 查看详细的…...

【C++杂货铺】国庆中秋特辑——多态由浅入深详细总结

文章目录 一、多态的概念二、多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.4 虚函数重写的两个例外2.4.1 协变(基类与派生类虚函数返回值类型不同)2.4.2 析构函数的重写(基类与派生类析构函数的名字不同) 2.5 …...

MongoDB基础详解

一、MongoDB概述 MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C 编写的。MongoDB 提供了 面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一…...

解锁前端Vue3宝藏级资料 第五章 Vue 组件应用 4 ( provide 和 inject )

5.5 provide 和 inject 前面的知识告诉我们vue中组件之间传递值需要使用props来完成,但是props也有一定局限性。这个时候在vue3中还有另外的解决方法。那就是使用 provide 和 inject 允许父组件将数据传递给所有后代组件,而不管组件层次结构有多深。你要…...

【List篇】LinkedList 详解

目录 成员变量属性构造方法add(), 插入节点方法remove(), 删除元素方法set(), 修改节点元素方法get(), 取元素方法ArrayList 与 LinkedList的区别Java中的LinkedList是一种实现了List接口的 双向链表数据结构。链表是由一系列 节点(Node)组成的,每个节点包含了指向 上一个…...

推动统一供应链“度量衡”,上汽大通突破传统拥抱SaaS生态

中国汽车市场规模已连续14年位居世界第一,目前占世界汽车份额31%。近年来,物联网、人工智能、电池等技术的快速发展,也为中国从汽车大国逐步迈向汽车强国注入巨大动力。在新一轮的汽车产业变革中,构建一个更智能、更高效协同的供应…...

蓝牙核心规范(V5.4)10.9-BLE 入门笔记之GAP

1.概述 蓝牙核心规范的通用访问配置文件(GAP)部分定义了与设备发现和在两个设备之间建立连接有关的过程。如何执行数据的基本无连接通信、如何使用周期性广播(参见 PADVB-LE Periodic Advertising Broadcast)以及如何设置等时通信(参见 LE BIS和LE CIS - Isochronous Com…...

nginx 配置 ssl

1.1 Nginx如果未开启SSL模块,配置Https时提示错误 原因也很简单,nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块&#xff0…...

家居设计软件Live Home 3D Pro mac中文版特点介绍

Live Home 3D Pro mac是一款专业的3D家居设计软件,可以帮助用户轻松创建和设计家居平面图和3D模型,并进行渲染和虚拟漫游。​​​​​​​ ​Live Home 3D Pro mac软件特点 1. 界面友好:Live Home 3D Pro的界面友好,操作简单方便…...

OkHttp - 现代应用网络的方式

官网:Overview - OkHttp HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP efficiently makes your stuff load faster and saves bandwidth. OkHttp is an HTTP client that’s efficient by default: HTTP/2 s…...

SpringBoot3基础:最简项目示例

说明 本文建立一个最基本的SpringBoot3项目&#xff0c;依赖项仅包含 spring-web&#xff08;SpringMVC&#xff09;。 备注&#xff1a;SpringBoot3需要JDK17支持&#xff0c;配置方法参考&#xff1a; SpringBoot3项目中配置JDK17 项目结构图示 POM <?xml version&qu…...

flex:1详解,以及flex:1和flex:auto的区别

什么是flex&#xff1a;1&#xff1f; 在css中&#xff0c;我们经常可以看到这样的写法&#xff1a; .box {display: flex; }.item {flex: 1; }这里的flex:1相当于flex: 1 1 0%&#xff0c;它是一个简写属性&#xff0c;表示项目&#xff08;flex item&#xff09;在弹性容器…...

在VMware虚拟机中固定CentOS系统ip(使用桥接模式)

目录 一、前置说明二、前置准备2.1、切换虚拟机网络为桥接模式2.2、查看本机网络信息 三、配置CentOS系统IP3.1、进入系统输入ip addr 查看本机网络配置名称3.2、查看网络配置目录&#xff0c;网络配置文件名称3.3、修改网络配置文件 ifcfg-ens33 固定IP3.4、重启网络 一、前置…...

怎样才能让百度搜索到自己的博客?--九五小庞

怎么把自己的博客推荐到百度、Google等主要搜索引擎&#xff1f; 如果不把你的博客提交到各大搜索引擎中&#xff0c;它们一般是不会收录你的博客的&#xff0c;你可以先尝试一下看看能不能在百度搜到你的博客吧。 如果搜不到的话说明你的博客还没有被百度收录&#xff0c;那么…...

【学习笔记】多模态综述

多模态综述 前言1. CLIP & ViLT2. ALBEF3. VLMO4. BLIP5. CoCa6. BeiTv3总结参考链接 前言 本篇学习笔记虽然是多模态综述&#xff0c;本质上是对ViLT后多模态模型的总结&#xff0c;时间线为2021年至2022年&#xff0c;在这两年&#xff0c;多模态领域的模型也是卷的飞起…...

MLAgents (0) Unity 安装及运行

1、下载ML-Agents 下载地址 GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinfo…...

typename关键字详解(消除歧义)

typename关键字详解 文章目录 typename关键字详解定义用法1.和class同义&#xff0c;用于引入泛型编程中所用到的模板参数2.用来消除歧义&#xff0c;告诉编译器后面的是类型名而不是变量名 定义 typename相当于泛型编程中class的同义关键字&#xff0c;用来指出模板类型所依赖…...

设计模式_解释器模式

解释器模式 案例 角色 1 解释器基类 &#xff08;BaseInterpreter&#xff09; 2 具体解释器1 2 3... (Interperter 1 2 3 ) 3 内容 (Context) 4 用户 (user) 流程 (上下文) ---- 传…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...