TCPClient连接到Gmail但没有收到第一条消息

问题描述 投票:1回答:1

我正在使用此代码连接到Gmail。写入每个WriteLine()。所以大概一切正常吗?但是没有消息写入控制台。怎么了?这是我的代码:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net.Security;

namespace RemoteControl
{
class MailClient
{
    static void Main(string[] args)
    {
        try
        {
            // create an instance of TcpClient 
            Console.WriteLine("Connecting...");
            TcpClient tcpclient = new TcpClient();
            tcpclient.Connect("imap.gmail.com", 993);
            SslStream sslstream = new SslStream(tcpclient.GetStream());
            sslstream.AuthenticateAsClient("imap.gmail.com");
            Console.WriteLine("Reached Gmail.");
            StreamWriter sw = new StreamWriter(sslstream);
            System.IO.StreamReader reader = new StreamReader(sslstream);
            Console.WriteLine("Sending username.");
            sw.WriteLine("USER [email protected]");
            Console.WriteLine("Sending password.");
            sw.WriteLine("PASS pass");
            Console.WriteLine("Receiving Message.");
            sw.WriteLine("RETR 1");
            Console.WriteLine("Complete.");
            tcpclient.Close(); // close the connection
            Console.ReadLine();
        }
        catch (IOException e) 
        {
            Console.WriteLine(e);
        }
    }
}
}
c# ssl gmail tcpclient gmail-imap
1个回答
0
投票

**根据我的理解,您希望使用C#阅读电子邮件。如果这是真的,我认为socket pop3是解决问题的不错选择。例如:**

using System.IO;
using System.Net.NetworkInformation;
using System.Net.Security;
using System.Net.Sockets;
public partial class Default3 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
{
    // create an instance of TcpClient 
    TcpClient tcpclient = new TcpClient();
    tcpclient.Connect("pop3.live.com", 995);
    System.Net.Security.SslStream sslstream = new SslStream(tcpclient.GetStream());
    sslstream.AuthenticateAsClient("pop3.live.com");
    StreamWriter sw = new StreamWriter(sslstream);
    System.IO.StreamReader reader = new StreamReader(sslstream);
    sw.WriteLine("USER [email protected]"); sw.Flush();
    sw.WriteLine("PASS xxxx****"); sw.Flush();
    sw.WriteLine("RETR 1");
    sw.Flush();
    sw.WriteLine("Quit ");
    sw.Flush();
    string str = string.Empty;
    string strTemp = string.Empty;
    while ((strTemp = reader.ReadLine()) != null)
    {
        if (".".Equals(strTemp))
        {
            break;
        }
        if (strTemp.IndexOf("-ERR") != -1)
        {
            break;
        }
        str += strTemp;
    }
    Response.Write(str);
    reader.Close();
    sw.Close();
    tcpclient.Close(); // close the connection
}
}
© www.soinside.com 2019 - 2024. All rights reserved.