5

我已经实现了以下示例代码来访问 gmail 并使用 AE.Net.Mail 获取前 10 个邮件主题。

我想知道到底出了什么问题,我反复收到错误

连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 173.194.79.108:993

这是代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using AE.Net.Mail;
using AE.Net.Mail.Imap;
using System.Configuration;

namespace IMAP
{
    class Program
    {
        private static void Main()
        {
            var items = ReadMail();
            if (items != null && items.Count > 0)
            {
                foreach (var item in items.Take(10))
                {
                    Console.WriteLine(item.Subject);
                }
            }
            Console.ReadLine();
        }
        public static List<MailMessage> ReadMail()
        {
            List<MailMessage> messages = null;
            try
            {
                string userName = "yourname@gmail.com"; // Replace with your actual gmail id
                string passWord = "password"; // Replace with your password

                if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(passWord))
                {
                    using (var imapClient = 
                        new ImapClient("imap.gmail.com", userName, passWord,     ImapClient.AuthMethods.Login, 993, true))
                    {
                        imapClient.SelectMailbox("INBOX");
                        messages = new List<MailMessage>(imapClient.GetMessageCount());
                        messages = imapClient.GetMessages(0, 100, false, true).ToList();
                        imapClient.Disconnect();
                    }
                }
                else
                {
                    Console.WriteLine("Username or Password is empty!");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return messages;
        }
    }
}

如果有人遇到类似的问题,请更新我,以及如何解决它。

谢谢,斯里拉姆

4

1 回答 1

6

我假设您收到的错误来自ImapClient尝试连接到远程 IMAP 服务器的构造函数抛出的异常。该错误是Winsock 错误 10060(连接超时。)如果您的连接数据包被阻止或者您尝试连接到错误的主机或错误的端口,通常会发生这种错误。你有几个选择:

  • ping/tracerouteimap.gmail.com看看是否可达
  • 993 是 IMAP SSL 端口,因此您可以openssl s_client -connect imap.gmail.com:993用来检查是否可以连接到 IMAP 服务器。如果您建立连接,您将看到 gmail 的 IMAP 服务器证书和消息* OK Gimap ready for requests,之后您可以键入 IMAP 登录命令0 LOGIN username pass
  • 检查您的代理设置。尝试在不使用代理的情况下进行连接。
  • 检查您的路由器/防火墙设置。端口993开放了吗?
  • 尝试使用imap.googlemail.com而不是imap.gmail.com
于 2013-07-22T12:01:54.653 回答