sockety + SMTP

0

Witam

Postanowiłem sam napisać prosty klient poczty tylko z użyciem socketów.

chwilowo próbuje ogarnąć tylko smtp

Tylko nie za bardzo wiem czy idę w dobrym kierunku - opieram się na poleceniach typu helo, mail from.

nie wiem czy tylko na tym mogę oprzeć program ? czy jeszcze mi coś brakuje ?

na razie nigdzie nie mogę znaleźć informacji jak wysłać serwerowi hasło i login..

całość piszę w Qt i C++, jedyny kod jaki mam na razie i wydaje mi się że działa (serwer wysyła odpowiedz) do czasu wydania polecenia mail from, dostaję wtedy bład od serwera 550 BLAD SPF - z tego co wyczytałem chodzi o autoryzację .

socket = new QTcpSocket(this);
    socket->connectToHost("smtp.wp.pl",587);

    if (socket->waitForConnected(3000))
    {
        qDebug() << "Connected!";

        socket->waitForBytesWritten(1000);
        socket->waitForReadyRead(3000);

        socket->write("helo smtp.wp.pl\n");
        qDebug() << socket->readAll();

        socket->waitForBytesWritten(1000);
        socket->waitForReadyRead(3000);

        socket->write("mail from <[email protected]>\n");
        qDebug() << socket->readAll();

       // .....
     }

Będę wdzięczny za pomoć.

0

Bawiłem się tym ostatnio i dołączę się do pytania:
Podczas rozmowy z serwerem pokazuje mi się w końcu

2317 Następuje próba połączenia
Połączono z (213.180.147.145:587)
::: 220 smtp.poczta.onet.pl ESMTP
//helo costam
2323 ::: 250 smtp.poczta.onet.pl
//mail from:[email protected]
2332 ::: 250 2.1.0 Ok
//rcpt to:[email protected]
2357 ::: 554 5.7.1 [email protected]: Relay access denied

Czy to znaczy że nie mam autoryzacji? Myślałem że będę mógł wysyłać maile, bez loginu i hasla, za pomocą socketu (bajtami) bez potrzeby posiadania wlasnego serwera SMTP.
I czy jak loguje sie powiedzmy na ten serwer smtp.poczta.onet.pl to moge wysylac tylko do osob ktore maja konto na ich serwerze? Czy po prostu lacze sie z serwerem, ktory dostarczy cokolwiek, gdziekolwiek?

1 użytkowników online, w tym zalogowanych: 0, gości: 1