Articole - Rețeaua - expedierea autorizației smtp

Deci, acum, pe scurt, ce SMTP - Simple Mail Transfer Protocol. Sarcina Protocol - este convenabil pentru a trimite adresa de e-mail. Dar dacă nu faci retrageri și nu intra în detalii, este doar un număr de echipe și „caractere speciale“, vă permite să trimiteți e-mailuri. Pentru a putea comunica personal cu serverul, puteți lua un telnet obișnuit (Start-Run-telnet) și du-te la 25 de portul serverului.

Acest lucru se face în echipa smtp.servak.net deschisă de 25. Și dacă totul merge bine, veți primi un răspuns de la server.

Eforturi suplimentare ar trebui să înceapă cu serverul, iar pentru aceasta el ar trebui să fie de bun venit. deoarece cuvintele normale serverul nu înțelege acest lucru trebuie să fie făcut echipa EHLO oricecuvant [CRLF].

[CRLF] = Enter = 13,10 (fiecare octet al secvenței de comandă este finalizată). După un răspuns afirmativ se poate trece direct la trimiterea de email-uri.

Dar este mai bine să vezi o dată decât să auzi de 100 de ori, așa că voi da un exemplu de dialog cu serverul (e - server u - utilizator):

proc Send_Mail pszmess, pszfrom, pszto, pszlog, pszpass, pszserv, pszsubj

Aici sunt datele de conectare criptate și parola pentru Base64, algoritmul utilizat de RT Fishel fără utilizarea alfabetului. Mai mult, lucrăm cu WinSocks

Aici ca parametru gethostbyname este trecut un pointer la șirul cu numele serverului, și apoi extras din sin_addr structura hostent.

Conectarea la portul 25, dar trebuie să ia în considerare ordinea octet.

După o conexiune poate citi răspunsul serverului.

Trebuie remarcat faptul că toate răspunsurile la server începe cu un anumit cod. Este ușor de văzut că, dacă are succes, codul începe fie cu numărul 2 sau 3 cu baza acestei erori de verificare în procedura get_data.

Acum, un pic despre procedurile auxiliare:

Nu cred că ar trebui să ia în considerare activitatea fiecăreia dintre ele, dacă sunteți familiarizați cu WinSocks, atunci fă-te fără nici o problemă.

Trimiterea de conectare și parola la server. szEnd + 3 - pointer la [CRLF]. Se pare că suntem trece printr-un șir de caractere, iar apoi [CRLF] și citiți răspunsul. Mai mult, toate în ordine, așa cum este descris mai devreme în acest articol.

Programul trimite o linie de aproximativ astfel:

Pentru a transfera fișiere, aveți nevoie pentru a crea corpul antetului tipul mesajului

Apoi, pur și simplu transferați fișierul criptat în Base64.

Multumesc:
  1. Ct757 pentru ajutor și utilitate pfcode, care a dat codul meu teribil aspect neted și frumos.
  2. Bill Prizonier pentru ideea de a scrie acest articol.
  3. Revers N-am mai atins SMTP.
Referințe:
  1. Utilizarea de prize / interacțiune cu SMTP-server [Billy Belcebu / IKX, trans. aquila]
  2. Ghid pentru Rețeaua de programare Beej, folosind prize de internet [Brian "Beej" Hall Lane. varnie]
  3. INFECTAT VOCE # 15 - Introducere. Internet. Conversație cu serverul SMTP în Assembler
  4. Codul sursă Xinch.
  5. RFC # 821 # 2554