Hej, piszę aplikację, która łączy się przez pop3 oraz smtp z serwerem poczty; napisałem kod w c++ z użyciem biblioteki WinSock2; SMTP ma autoryzację (Base64) oraz obsługę załączników MIME, ale chciałbym dopisać do tego jeszcze SSL.

Nie chcę wyważać otwartych drzwi, więc tylko pytam, czy ktoś z was mógłby mi wytłumaczyć prosto jak zaszyfrować połączenie z serwerem SMTP z wykożystaniem gotowych funkcji np. biblioteki OpenSSL?

Moje łączenie z SMTP wygląda tak:

//połączenie z serwerem - start
send("EHLO")
//autoryzacja
send("AUTH_LOGIN\r\n")
send(toBase64(mój_adres).c_str() + "\r\n")
send(toBase64(moje_haslo).c_str() + "\r\n")
//dane stron komunikacji
send("MAIL FROM:< moj_adres >\r\n")
send("RCPT TO:< adres_korespondenta >\r\n")
//wysłanie treści wiadomości
send("DATA\r\n")
send("MIME-Version: 1.0\r\n")
send("Subject: =?Windows-1250?B?"+toBase64(tytulWiadomosci).c_str() + "?=\r\n")
send("From: " + mój_adres + "\r\n")
send("To: " + adres_korespondenta + "\r\n")
send(""Content-Type: multipart/mixed; boundary=00newline9\r\n\r\n"")
send("--00newline9\r\n")
send("Content-Type: text/plain; charset=Windows-1250\r\n")
send("Content-Transfer-Encoding: base64\r\n\r\n")
send(toBase64(tekst_wiadomosci).c_str() + "\r\n\r\n")
send("--00newline9\r\n")
//załączniki
send("Content-Type: " + załącznik.getMIME() + "; name="" + załącznik.getFileName() + ""\r\n")
send("Content-Disposition: attachment; filename="" + załącznik.getFileName() + ""\r\n")
send("Content-Transfer-Encoding: base64\r\n\r\n")
send(toBase64(readFile(załącznik)) + "\r\n")
send("--00newline9--\r\n")
send(".\r\n")
//zakończenie połączenia
send("QUIT\r\n")

Generalnie jak widać komunikatami do serwera są stringi; jeśli chcę to robić przez SSL, to czy powinienem zaszyfrować każdy jeden string SSL'em? No ale gdzie serwer z klientem "podadzą sobię rękę" ??

Mógłby ktoś uzupełnić najlepiej ten pseudokod, albo wyjaśnić mi jak zaszyfrować połączenie SSL'em;

dzięki, pzdr