.net core 发送邮件
在.net core2.0以上版本中 发送所用到的API与.net framework一致。1.0版本好像有差别,好在高版本解决了这个问题。
为了方便查看效果,以控制台程序为例。 邮箱服务器以现在比较大众化QQ邮箱为例
1.获取QQ邮箱的授权码
在使用QQ邮箱发送邮件时,需要额外的一个授权码。不同于我们平时所用的登录密码,是在开启SMTP服务之后生成的一个密码。它是用于登录第三方客户端的专用密码。
步骤:
1.1 进入QQ邮箱首页,在最上方点击 设置 按钮,进入下一页面
1.2 点击 账户 选项卡 ,划到大概中间部分,有一个服务选项区。经实验开启前两个就可以了。
1.3 点击下方的 生成授权码,在开启服务之后会自动生成一次。这一步如果绑定了密保,会先进行一次身份验证。验证之后会发放一个授权码。这个授权码,在程序里会用到。
2. 代码实现
在拿到授权码之后就可以在代码实现功能了
2.1 创建控制台项目,代码如下。 示例是用我的QQ邮箱给我的Gmail邮箱发送一封测试邮件。
static void Main(string[] args) { MailMessage mailMsg = new MailMessage();//实例化对象 mailMsg.From = new MailAddress("923974733@qq.com", "季某人");//源邮件地址和发件人 mailMsg.To.Add(new MailAddress("xiaomaprincess@gmail.com"));//收件人地址 mailMsg.Subject = "邮件发送测试";//发送邮件的标题 StringBuilder sb = new StringBuilder(); sb.Append("测试测试测试测试"); sb.Append("嘿嘿"); mailMsg.Body = sb.ToString();//发送邮件的内容 //指定smtp服务地址(根据发件人邮箱指定对应SMTP服务器地址) SmtpClient client = new SmtpClient();//格式:smtp.126.com smtp.164.com client.Host = "smtp.qq.com"; //要用587端口 client.Port = 587;//端口 //加密 client.EnableSsl = true; //通过用户名和密码验证发件人身份 client.Credentials = new NetworkCredential("923974733@qq.com", "xxxxxxxxxxxxxx"); // //发送邮件 try { client.Send(mailMsg); } catch (SmtpException ex) { } Console.WriteLine("邮件已发送,请注意查收!"); Console.ReadKey(); }
2.2 启动程序: 被告知已发送成功
2.3 打开Gmail确认是否发送了邮件
成功接收!
源码在https://github.com/ldhnet/AspDotNetDemo/tree/master/SendEmailConsole
分类:
.Net Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2017-05-15 HTTP请求返回状态码详解