C# 获取qq邮箱的未读邮件

第一步: 先在QQ邮箱进行设置,获取授权码。

第一步:打开QQ邮箱并点击设置

第二步:点击账户,并滑到下面

 第三步:开启POP3/IMAP/SMTP/Exchange/CardDAV服务并生成授权码

在这个页面找到下图这个位置,在IMAP/SMTP服务那一行,点击开启,这个时候你会看到一个弹框,按照里边的要求,发一封短信后,你会看见一串字符,这个就是你的授权码。

下面的图片是各种服务已经开启好的结果。

 第二步:在控制台创建一个新项目QQInform,编写以下代码

先进行库的导入

using MailKit;
using MailKit.Net.Imap;
using MailKit.Search;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Security;
using System.Net.Sockets;
using System.Text;

有些库项目并没有下载,要自己在vs里面下载并安装,有两种安装方法。 

方法一:

点击工具下面的NuGet包管理工具,再点击第二个管理解决方案的NuGet程序包, 选择浏览项(一般默认再浏览项)在搜索框输入想要安装的库名,点击下面第一个(一般都是第一个,也可以选择下载次数最多的),下载并安装,然后在项目里添加引用就可以了。

方法二:

直接写代码,缺少引用时,把鼠标放在出错的地方,然后会出现图右下角①的标志旁的符号,点击之后出现安装“xxxxxx”下面的使用包管理和安装然后跳转到下图左边出现的库。点击第一个然后再右边会有版本号和安装按钮,点击安装,然后出现一个提示框,确认就安装完成了。

第三步:声明静态变量并赋值,在第三步封装的方法里面会用到。

要在主函数外面定义邮箱账号,授权码,服务器和端口号四个全局变量

static string mail = "邮箱账号", pwds = "qq授权码";
static string imapServer = "imap.qq.com";//IMAP服务器
static int imapPort = 993;//端口号

第四步:封装一个静态方法来获取到未读数据

public static void GetUnreadEmails()
{
     using (var client = new ImapClient())
     {
            client.Connect(imapServer, imapPort, true);
            client.Authenticate(mail, pwds);

            var inbox = client.Inbox;
            inbox.Open(FolderAccess.ReadOnly);

            var query = SearchQuery.NotSeen;

            foreach (var uid in inbox.Search(query))
            {
                  var message = inbox.GetMessage(uid);

                   // 在这里处理每个未读邮件,例如显示在网站页面上
                   Console.WriteLine("Subject: " + message.Subject);
                   Console.WriteLine("From: " + message.From.ToString());
                   Console.WriteLine("Date: " + message.Date.ToString());
                   Console.WriteLine("------------------------------------------------");
            }

                client.Disconnect(true);
      }
}

第五步:在主函数中调用这个函数

static void Main(string[] args)
{
       GetUnreadEmails();
       Console.ReadKey();//界面停留
}

全部代码如下:

using MailKit;
using MailKit.Net.Imap;
using MailKit.Search;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Security;
using System.Net.Sockets;
using System.Text;

namespace QQInform
{
    static class Program
     {
        static string mail = "邮箱账号", pwds = "qq授权码";
        static string imapServer = "imap.qq.com";//IMAP服务器
        static const int imapPort = 993;//端口号
        static void Main(string[] args)
        {
            GetUnreadEmails();
            Console.ReadKey();
        }

        public static void GetUnreadEmails()
        {
            using (var client = new ImapClient())
            {
                client.Connect(imapServer, imapPort, true);
                client.Authenticate(mail, pwds);

                var inbox = client.Inbox;
                inbox.Open(FolderAccess.ReadOnly);

                var query = SearchQuery.NotSeen;

                foreach (var uid in inbox.Search(query))
                {
                    var message = inbox.GetMessage(uid);

                    // 在这里处理每个未读邮件,例如显示在网站页面上
                    Console.WriteLine("Subject: " + message.Subject);
                    Console.WriteLine("From: " + message.From.ToString());
                    Console.WriteLine("Date: " + message.Date.ToString());
                    Console.WriteLine("-------------------------------------------------");
                }

                client.Disconnect(true);
            }
        }
    }
}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值