Adobe Air javascript imap ssl - невозможно выполнить команду «list» - плохая неизвестная команда - PullRequest
1 голос
/ 20 января 2012

Я пишу приложение в Adobe 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 "" "*"');
}

1 Ответ

0 голосов
/ 21 января 2012

Это не относится к SSL / TLS. Здесь вы создаете новое соединение, когда вы хотите войти в систему, и другое новое соединение, когда вы хотите получить электронную почту. Что касается сервера, это два совершенно разных соединения. Удаление этих строк в fetchEmail() должно быть началом:

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

Кроме того, вам необходимо убедиться, что вы получили соответствующий код ответа после команды LOGIN (или любой другой команды на самом деле), прежде чем переходить к следующей команде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...