Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подключение к серверу IMAP
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
axon
Пытаюсь разобраться с протоколом imap4. Подключаюсь к серверу с помощью tcp-сокета. Ответы сервера добавляю в QTextWidget. Получаю приветствие, но сервер практически не реагирует на мои запросы. Подскажите в чем проблема?

Вот основной код:
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    imapSocket = new QTcpSocket(this);
    imapSocket->connectToHost(QHostAddress("127.0.0.1"), 143);
    connect(imapSocket, SIGNAL(readyRead()), SLOT(readMessage()));

}

MainWindow::~MainWindow()
{
    delete ui;
    imapSocket->close();
}

void MainWindow::on_ok_clicked()
{
    qDebug() << imapSocket->state();
    if(ui->send->text().isEmpty()) return;
    QByteArray data = ui->send->text().toAscii();
    imapSocket->write(data);
    ui->send->clear();
}


void MainWindow::readMessage()
{
    QByteArray datagram;
    datagram = imapSocket->readAll();
    QString ans(datagram);
    ui->answer->append(ans);
}
PAFOS
Согласно протоколу каждая команда должна заканчиваться CR LF (\r\n) у тебя видимо это не посылается.
Попробуй так

QByteArray data = ui->send->text().toAscii() + "\r\n";
imapSocket->write(data);
crashsp
У меня таже история приветствие получил но авторизоваться не могу пишет
LOGIN BAD command syntax error. sc=pokTmKo7S4Y1

Синтаксис вроде верен socket->write("LOGIN bla-bla@yandex.ru password\r\n");

Не кто не сталкивался ?
Evоlution получает и отправляет без проблемм...
PAFOS
После приветствия каждая команда должна иметь свой номер в префиксе.

Например

* OK localhost IMAP4rev1 v12.250 server ready
a001 LOGIN katie boxcar
a001 OK LOGIN completed
a002 LOGOUT
* BYE shadrach.smallorg.org IMAP4rev1 server terminating connection
a002 OK LOGOUT completed


В данном случае мы посылаем команду авторизации с номером а001
получаем ответ с номером а001

Посылаем команды выхода с номером а002
получаем ответ с номером а002
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.