Leírás SMTP protokoll
A fő feladat az SMTP (Simple Mail Transfer Protocol) továbbítását biztosító elektronikus üzenetek (e-mail). A munka az SMTP protokollon keresztül kliens létrehoz egy TCP kapcsolatot a szerver 25-ös porton Ezután a kliens és az SMTP szerver információt cserélnek, amíg a kapcsolat zárva van, vagy megszakad. Az alapvető eljárás, hogy adja át az SMTP mail (Mail eljárás). Következő továbbítjuk mail eljárások (Mail továbbítás), ellenőrizze a nevét a postafiók és a visszavonását mail csoportok listáját. A legelső eljárás az, hogy nyissa a csatorna, és az utolsó - annak lezárását.
SMTP mondják meg a szerver milyen műveletet akarja, hogy az ügyfél. A csapatok egy kulcsszó, majd egy vagy több paramétert. Kulcsszó sostot 4 szimbólumok és az érvelés osztva egy vagy több terek. Minden parancs sor végén CRLF karaktereket. Itt látható a szintaxis minden SMTP parancs (SP - space):
Normál SMTP szerver válasza áll válasz aránya, utána egy szóközt, majd egy további szöveget. A válasz szám jelzi az állam a szerver.
e-mail küldése
Ha e-mail küldése peredaom néhány lényeges adatokat (feladó, címzett és a levél is):
transzfer írni kell kitölteni CRLF.CRLF szimbólumok
betűk között az államháztartási és a szöveg nem egy pár CRLF, hanem kettő.
Az átvitel befejezésére szimbólumok CRLF.CRLF
Most befejezze a munkát, küldje el a parancs QUIT:
> Más csapatok
kama ott VINAP nada ..
Adok a jelenlegi kódrészletet
adat
msgHELO db 'HELO host', 13,10
msgFROM db 'mail from: Milo @ mail.ru', 13,10
msgRCPT db 'RCPT TO: LAMERDEATH15 @ mail.ru', 0DH, 0AH
msgDATA DB: 'DATA', 0DH, 0AH
msgDATA2 db „ez a teszt mail üzenetet
KÓD
ush offset WSD
mov EAX, 0
mov ax, 0202h
tolja eAX
hívja wsastartup
hivatkozhat htons 25
mov sin2.sin_port, ax
mov sin2.sin_family, 2
tolja 0
tolja 1
tolja 2
hívás aljzat
mov s1, eax
nyomja sizeof (sockaddr_in)
nyomja offset sin2
tolja s1
Call Connect
nyomja sizeof msgrecv
nyomja offset msgrecv
tolja s1
hívás recv
tolja 0
tolja sizeof msgHELO
nyomja offset msgHELO
tolja s1
call Levél
tolja 0
nyomja sizeof msgrecv
nyomja offset msgrecv
tolja s1
hívás recv
tolja 0
nyomja sizeof msgFROM
nyomja offset msgFROM
tolja s1
call Levél
tolja 0
nyomja sizeof msgrecv
nyomja offset msgrecv
tolja s1
hívás recv
tolja 0
tolja sizeof msgRCPT
nyomja offset msgRCPT
tolja s1
call Levél
tolja 0
nyomja sizeof msgrecv
nyomja offset msgrecv
tolja s1
hívás recv
tolja 0
tolja sizeof msgDATA
nyomja offset msgDATA
tolja s1
call Levél
tolja 0
tolja sizeof msgDATA2
nyomja offset msgDATA2
tolja s1
call Levél
tolja 0
nyomja sizeof msgrecv
nyomja offset msgrecv
tolja s1
hívás recv
tolja 0
tolja 0
tolja sizeof msgQUIT
nyomja offset msgQUIT
tolja s1
call Levél
a megfelelő recv lehetséges nem juzat, így a hibakeresés.
Nos kész a liboy aljzatok
Ha Th mylte [email protected]
Tudok valamit hozzátenni hitelesítés
1 EHLO parancsot.
Ezzel az utasítással, a szerver, amely támogatja a fejlett SMTP (ESMTP) kimenetek különböző információkat, beleértve a és hitelesítési módszerek. Például:
C: EHLO
S: 250-
S: 250-SIZE
S: 250-8BITMIME
S: 250-AUTH = SIMA belépés
S: 250 HELP
Mint látható, válaszul EHLO kiszolgáló egy sor sorok kezdeni 250 (az utolsó sor nem kötőjellel). Itt a kiszolgáló hitelesítést igényel típus használata egyszerű bejelentkezés során kódolás 8BITMIME. Gyakran előfordul, hogy ahelyett, AUTH =<тип> AUTH továbbítjuk vonal <список поддерживаемых типов>. Pl AUTH LOGIN DRAM-MD5
Ebben az esetben az ügyfél kiválaszthatja a hitelesítés típusát magát