簡體   English   中英

使用C#中的AE.Net.Mail訪問GMail

[英]Accessing GMail using AE.Net.Mail in C#

我已經實現了以下示例代碼來訪問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;
        }
    }
}

如果有人遇到類似這樣的問題,請更新我,以及如何解決它。

謝謝,Sriram

我假設您獲得的錯誤來自ImapClient構造函數拋出的異常,該構造函數嘗試連接到遠程IMAP服務器。 該錯誤是Winsock錯誤10060(連接超時。) ,如果您的連接數據包被阻止或者您嘗試連接到錯誤的主機或錯誤的端口,通常會發生此錯誤。 你有幾個選擇:

  • ping / traceroute imap.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM