C#-WinForm-发送邮件

2023-09-14 10:10:38

登录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);

更多推荐

做接口测试如何上次文件

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试)在日常工作中,经常有上传文件功能的测试场景,因此,本文介绍两种主流编写上传文件接口测试脚本的方法。首先,要知道文件上传的一般原理:客户端根据文件路径读取文件内容,将文件内容转换成二进制文件流的格式传输给

PASCAL VOC2012数据集详细介绍

PASCALVOC2012数据集详细介绍0、数据集介绍2、PascalVOC数据集目标类别3、数据集下载与目录结构4、目标检测任务5、语义分割任务6、实例分割任务7、类别索引与名称对应关系0、数据集介绍2、PascalVOC数据集目标类别在PascalVOC数据集中主要包含20个目标类别,下图展示了所有类别的名称以及所

关于String、StringBuffer、StringBuilder

1.String可以被继承吗?String类由final修饰,所以不能被继承。扩展阅读在Java中,String类被设计为不可变类,主要表现在它保存字符串的成员变量是final的。Java9之前字符串采用char[]数组来保存字符,即privatefinalchar[]value;Java9做了改进,采用byte[]数

【人工智能】企业如何使用 AI与人工智能的定义、研究价值、发展阶段的深刻讨论

前言人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是新一轮科技革命和产业变革的重要驱动力量。📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐

Maven 直接依赖、间接依赖、依赖冲突、依赖仲裁

文章目录直接依赖和间接依赖依赖冲突Maven的依赖仲裁最短路径优先先声明优先手动解决依赖冲突直接依赖和间接依赖在项目中直接引入的依赖叫做直接依赖,而那些被动引入的就叫间接依赖比如上图中,A是我们的项目,我们在项目中直接引入了B模块,所以B和A的关系就是直接依赖,而B工程内部引入了C,所以B和C也是直接依赖关系,如果B工

Python编程指南:利用HTTP和HTTPS适配器实现智能路由

嗨,爬虫大佬们!今天我要为大家分享一篇关于如何利用HTTP和HTTPS适配器来实现智能路由的Python编程指南。在现代互联网应用中,路由功能起着至关重要的作用,而利用Python编程语言实现智能路由则可以为我们的应用带来更高的灵活性和性能优化。接下来,让我们一起深入了解这个令人激动的主题吧!1、了解HTTP和HTTP

简单易上手,亚马逊云科技Amazon CodeWhisperer个性化辅助功能成为开发者好帮手

AmazonCodeWhisperer介绍AmazonCodeWhisperer是亚马逊云科技出品的一款基于机器学习的通用代码生成器,可实时提供代码建议。类似Cursor和GithubCopilot编码工具。在编写代码时,它会自动根据您现有的代码和注释生成建议。从单行代码建议到完整的函数,它可为您提供各种大小和范围的个

关于React Hooks的面试题及其答案

请解释一下ReactHooks是什么,以及它的优点和缺点是什么?Hooks是React16.8版本引入的一种新特性,它允许你在不写class的情况下操作state和其他React特性。Hooks是一种特殊的函数,可以让你“钩入”React的特性。它的优点是让编写组件更简单方便,同时可以自定义hook把公共的逻辑提取出来

面试中的技术趋势:如何展示你跟进最新技术的能力

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

小程序测试基础知识分享,获取专业测试报告就找卓码软件测评

近年来,随着互联网的快速发展,小程序测试成为了一个重要的环节。而小程序测试的内容以及注意事项则会直接影响到产品的质量和用户体验。卓码软件测评作为专业的软件测试公司,在软件测试方面有着丰富的经验。下面将从多个角度来详细描述小程序测试的内容和注意事项,并分析测试对产品的作用。一、小程序测试的内容1、功能测试:各项功能的稳定

如何查看mysql的存储引擎

要查看MySQL中的存储引擎,可以使用以下两种方法:1.使用SQL查询:您可以使用SQL查询来查看MySQL中的存储引擎。打开MySQL客户端,并连接到您的MySQL服务器,然后运行以下SQL查询:SHOWTABLESTATUS;这将列出所有数据库中的表以及与每个表相关的信息,包括存储引擎。在结果中,可以查看"Engi

热文推荐