OpenPop实现接受QQ邮件以及发送邮件

OpenPop实现接受QQ邮件

  • 一、首先打开QQ的Pop服务
  • 二、引入OpenPop的Nuget包
  • 三、实现QQ服务器连接并接受邮件
  • 四、发送邮件(这个不用OpenPop就行)

一、首先打开QQ的Pop服务

进入设置,选择账户,选择开启服务,会进入验证环节,验证通过后会有一个授权码,记录下来。
OpenPop实现接受QQ邮件以及发送邮件_第1张图片

二、引入OpenPop的Nuget包

在这里插入图片描述

三、实现QQ服务器连接并接受邮件

        [HttpGet("Pop")]
        public async Task Pop()
        {
            // QQ 邮箱的设置
            string hostname = "pop.qq.com";
            int port = 995; // 使用 SSL 的 POP3 端口
            bool useSsl = true; // 使用 SSL 加密

            string username = "qq邮件地址";
            string password = "获取的授权码";
            using (Pop3Client client = new Pop3Client())
            {
                // 连接到 QQ 邮箱服务器
                client.Connect(hostname, port, useSsl);
                client.Authenticate(username, password);

                // 获取邮件数量
                int messageCount = client.GetMessageCount();
                Console.WriteLine($"Total messages: {messageCount}");

                // 遍历邮件消息
                for (int i = 1; i <= messageCount; i++)
                {
                    Message message = client.GetMessage(i);

                    Console.WriteLine($"Subject: {message.Headers.Subject}");
                    Console.WriteLine($"From: {message.Headers.From.Address}");
                    Console.WriteLine($"Date: {message.Headers.DateSent}");
                    Console.WriteLine($"Message body: {message.FindFirstPlainTextVersion().GetBodyAsText()}");
                    Console.WriteLine("-----------------------------------");
                }

                // 断开连接
                client.Disconnect();
            }
        }

四、发送邮件(这个不用OpenPop就行)


        [HttpGet("SendMail")]
        public async Task SendMail()
        {
            // QQ 邮箱的设置
            string smtpHost = "smtp.qq.com";
            int smtpPort = 587; // 使用 SSL 的 SMTP 端口
            bool enableSsl = true; // 使用 SSL 加密
            string fromEmail = "发件邮箱地址";
            string fromPassword = "获取的授权码";

            string toEmail = "接收邮件地址"; // 接收方邮箱地址

            // 创建 SmtpClient 实例
            SmtpClient smtpClient = new SmtpClient(smtpHost, smtpPort)
            {
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(fromEmail, fromPassword),
                EnableSsl = enableSsl
            };

            // 创建 MailMessage 实例
            MailMessage mailMessage = new MailMessage(fromEmail, toEmail)
            {
                Subject = "Test Email Subject",
                Body = "This is a test email from C#.",
                IsBodyHtml = false
            };

            try
            {
                // 发送邮件
                smtpClient.Send(mailMessage);
                Console.WriteLine("Email sent successfully.");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error sending email: {ex.Message}");
            }
        }

你可能感兴趣的:(c#,开发语言)