C#中收发QQ邮箱电子邮件

1.安装第三方库MailKit

复制代码
#.NET Coredotnet add package MailKit --version 2.5.1
#.NET FrameworkInstall-Package MailKit -Version 2.5.1

2.1发送代码

复制代码
try{    MimeMessage message = new MimeMessage();    message.From.Add(new MailboxAddress("备注", "xxx@qq.com"));//发送邮箱    message.To.Add(new MailboxAddress("备注", "xxx@163.com"));//接收邮箱    message.Subject = "邮件测试标题";//标题    BodyBuilder bodyBuilder = new BodyBuilder();    bodyBuilder.TextBody = "邮件测试正文";    message.Body = bodyBuilder.ToMessageBody();
    //创建SMTP客户端    using (SmtpClient client = new SmtpClient())    {        client.ServerCertificateValidationCallback = (s, c, h, e) => true;        client.Connect("smtp.qq.com", 465, true);//smtp服务器,端口,是否开启ssl        client.Authenticate("xxx@qq.com", "password");//这里的password填授权码        client.Send(message);        client.Disconnect(true);    }}catch (Exception ex){    Console.WriteLine("发送邮件失败:" + ex.Message);}

2.2接收代码

复制代码
try{    //创建IMAP客户端    using (ImapClient client = new ImapClient())    {        client.Connect("imap.qq.com", 993, true);//imap服务器,端口,是否开启ssl        client.Authenticate("xxx@qq.com", "password");//这里的password填授权码        // 打开收件箱        var inbox = client.Inbox;        inbox.Open(FolderAccess.ReadOnly);//只读        // 获取收件箱中的邮件数量        Console.WriteLine("收件箱中共有 {0} 封邮件", inbox.Count);        // 遍历收件箱中的邮件并输出主题        for (int i = 0; i < inbox.Count; i++)        {            var message = inbox.GetMessage(i);            Console.WriteLine("邮件主题:{0}", message.Subject);        }        client.Disconnect(true);    }}catch (Exception ex){    Console.WriteLine("接收邮件失败:" + ex.Message);}

注意:

用户名/帐户: 你的QQ邮箱完整的地址

密码: 生成的授权码

电子邮件地址: 你的QQ邮箱的完整邮件地址

接收邮件服务器: imap.qq.com,使用SSL,端口号993

发送邮件服务器: smtp.qq.com,使用SSL,端口号465或587

获取授权码:

1.登录邮箱

2.【账号与安全】

3.【安全设置-生成授权码】

相关推荐
拾年27535 分钟前
React Hooks 进阶篇:useMemo / useCallback / useReducer / useImperativeHandle,用「算账 +
前端·javascript·react.js
Jackson__41 分钟前
面试官:如何在老项目中使用新框架,并实现通信?
前端·javascript·面试
拾年27544 分钟前
React Hooks 保姆级教程:把组件想象成失忆的打工人,4 个 Hook 带你原地起飞
前端·javascript·react.js
世人万千丶1 小时前
去重插入与超限淘汰:ArkTS 实现鸿蒙搜索历史的 LIMIT 艺术
运维·服务器·学习·华为·harmonyos·鸿蒙
mmsx1 小时前
一个 Bug 修了 12 轮,根因只有一句话:AI 编程时代,日志才是唯一的真相
前端
默_笙1 小时前
😝 5 亿次循环卡死页面?我用 Web Worker 把它扔进后台线程,页面丝滑如初
前端·javascript
CAD老兵1 小时前
一行代码集成 DWG/DXF 图纸查看:测量批注,数据不出站
前端·javascript·github
小林ixn1 小时前
单例模式:从弹窗管理到全局状态,一个模式搞定
前端·javascript·设计模式
AI编程实验室1 小时前
Node.js Agent Handoff 仓库扫描 MVP:忽略规则、include 通配与稳定输出实现
前端·ai编程
猫不易1 小时前
从 Virtual DOM 到 Vapor:Vue 3.6 的另一条路
前端·vue.js