【问题标题】:Adobe Air javascript imap ssl - unable to issue "list" command - bad unknown commandAdobe Air javascript imap ssl - 无法发出“列表”命令 - 未知命令错误
【发布时间】:2012-02-15 05:20:55
【问题描述】:

我正在 Adob​​e Air 中编写一个应用程序来从 Gmail 中获取电子邮件。我能够连接 SSL 并成功登录,但随后我无法继续获取电子邮件。我认为这是因为未维护 SSL 会话。每次我发出命令时,会话都会丢失。

要获取电子邮件,我必须发送登录请求,然后发送LIST "" "*" 命令。但由于登录后连接中断,当我发送LIST 命令时,它作为一个新连接启动并认为我尚未登录,并给出错误消息a001 BAD Unknown command gf9if3619638pbc.89

代码如下。有什么想法可以实现,或者这甚至可能吗?

var socket;
function login() {
    socket = new air.SecureSocket();
    socket.connect('imap.gmail.com', 993);
    socket.writeUTFBytes("\n"+"a001 LOGIN username password");
    socket.addEventListener(air.ProgressEvent.SOCKET_DATA, socketDataHandler);
}

function fetchEmail() {
    socket = new air.SecureSocket();
    socket.connect(server, port);
    socket.writeUTFBytes("\n"+'a001 LIST "" "*"');
}

【问题讨论】:

    标签: javascript air adobe imap


    【解决方案1】:

    这并非特定于 SSL/TLS。在这里,当您想要登录时创建一个新连接,当您想要获取电子邮件时创建另一个新连接。就服务器而言,这是两个完全不同的连接。删除fetchEmail() 中的这些行应该是一个开始:

    socket = new air.SecureSocket();
    socket.connect(server, port);
    

    此外,在继续执行下一个命令之前,您需要确保在 LOGIN 命令(或任何其他命令)之后获得适当的响应代码。

    【讨论】:

    • 感谢您的回复!。是的,你是对的,我也尝试过,通过使用相同的套接字对象,但我没有得到任何响应。进一步。这在没有 SSL 的情况下完美运行,但不适用于 SSL。我的代码位于 [link](testyourproject.com/sampl_ssl.html) .. 第 74 行,是它请求邮箱列表的地方.. 任何想法都会非常有帮助.. 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2016-08-18
    • 1970-01-01
    • 2012-04-24
    • 2013-12-13
    • 1970-01-01
    • 2015-01-14
    相关资源
    最近更新 更多