什么谈IMAP邮件服务器? ↨♥☺

时间:2014-12-08 08:46:08

标签: c# email imap

它是我的应用程序在调试模式下的日志:

与imap.ya.ru交谈:http://s013.radikal.ru/i325/1412/10/14b46c9d7a2c.png

与imap.gmail.com交谈:http://s61.radikal.ru/i174/1412/d2/113d5fc6289f.png

什么意思是这些符号?

我使用C#。

我包含的内容:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Net.Security;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;

我的代码片段:

int port = useSSL ? portIMAPoverSSL : portIMAP;
Stream stream = new TcpClient(ImapServerName,port).GetStream();
stream.ReadTimeout = 10;
if (useSSL)
{
    SslStream ssl = new SslStream(stream);
    ssl.AuthenticateAsClient(ImapServerName);
    stream = ssl;
}
StreamWriter w = new StreamWriter(stream,Encoding.ASCII);
w.AutoFlush = true;
StreamReader r = new StreamReader(stream,Encoding.ASCII);

读取服务器消息而不是阻止GUI我使用此过程:

static string readServerAndProcessMessages()
{
        while (true)
        {
            try
            {
                return r.ReadLine();
            }
            catch(IOException e)
            {
                Application.DoEvents();
            }
        }
}

有时这段代码:

string serv = readServerAndProcessMessages();

,返回(不包含<>):<↨♥☺>,有时<↨♥☺0>作为服务器响应的前缀。这意味着什么?加入了IMAP4 RFC,我找不到任何关于此的信息。

1 个答案:

答案 0 :(得分:2)

找到了ERROR的来源!!!

由于:

stream.ReadTimeout = 10;
SSL协议小裂缝,并出现↨♥☺神器!!!

使用异步读取操作,此BUG消失!我很高兴。