V TELNETu použijeme příkaz OPEN -server- -port-
například: "OPEN 127.0.0.1 25" (navážeme spojení s lokálním počítačem na portu 25).
Měli bychom dostat odpověď, která bude podobné této: "220 127.0.0.1 ArGoSoft Mail Server....". Tím jsme úspěšně navázali spojení s mail serverem (SMTP). Teď je potřeba se nějak identifikovat. K tomu slouží příkaz HELO a EHLO. EHLO nemusí být vždy potporováno, ale HELO bude vždy fungovat. Syntaxe je shodná pro oba příkazy: HELO -jmeno-.
Například: "HELO mail.test.cz" nebo "HELO 111.222.333.444".
Na to server odpoví nějak takto: "250 Welcome [jmeno], pleased to meet you". Teď je nutné serveru předat dva velmi důležité parametry: adresu odesílatele a hlavně adresu, kam se má pošta doručit. K tomu slouží dva příkazy:
mail from: [email protected]
rcpt to: [email protected]
Na oba tyto příkazy by měl server odpovědět "250 ..." (to znamená v podstatě OK). Odpověď "502 ..." znamená, že server nopoznal odeslaný příkaz! Doporučuji nepoužívat BACKSPACE a ENTER na numerické klávesnici. Některé servery si s tím neporadí a ohlásí chybu. U příkazu "rcpt to:" můžete narazit ještě na jednu chybu: "550 User not local. We do not relay" to znamená, že se pokoušíte zaslat email uživately jiného poštovního serveru (tzv. relay). Některé servery ale doručují poštu POUZE uživatelům ve své doméně a ODMÍTAJÍ oesílat emaily na jiné SMTP servery. Další možnou chybou je "550 User unknown". To zase znamená, že server daného uživatele nezná.
Po úspěšném příkazu "mail from" a "rcpt to" můžeme konečně přejít k odesílání mailu. Nejdříve pošleme příkaz data, poté budou následovat hlavičky a po nich již vlastní text emailu. Mezi hlavičkou a vlastním textem je jeden prázdný řádek! Zadávání se ukončí zapsáním "." na semostatném řádku.
data
From: Odesilatel
To: DEVIL
Subject: Testovaci email
Content-type: text/plain; charset="windows-1250"
Mime-version: 1.0
Testovaci email odeslany pres TELNET.
.
Upozorňuji, že případné znaky s diakritikou se nedají zadávat přímo, ale POUZE přes jejich zástupné znaky podle normy MIME. Informace o normě MIME naleznete na internetu. Jedna z adres je http://www.cpress.cz/knihy/tcp-ip-bezp/3.htm
Teď si řekneme něco o jednotlivých položkách hlavičky.
"From: " - definuje email adresu odesílatele ve formátu "jmeno
"To: " - definuje adresu příjemce. Formát je shodný s "From".
"Cc: " - kopie emailu. Formát je shodný s "From", ale je možno zapsat více adres oddělených čárkou.
"Bcc: " - skrytá kopie. Formát je shodný s "Cc".
"Reply-To: " - určuje adresu pro případnou odpověď. Pokud není zadána použije se "From" nebo "mail from".
"In-Reply-To: " - toto identifikuje předcházející korespondenci, která je odpovědí na Vaši zprávu.
"Subject: " - stručný popis zprávy (ale tohle snad víte).
"Sender: " - určuje odesílatele zprávy, pokud je jiný než je uvedeno v položce "From".
"Date: " - datum odeslání zprávy ve formátu GMT (př.: "Thu, 18 Jan 2001 16:44 +0100").
"References: " - identifikuje jinou korespondenci, na kterou se tato zpráva odkazuje.
"Message-ID: " - ID emailu - je automaticky generováno mail serverem.
"Keywords: " - klíčová slova. Jednotlivá slova se oddělují čárkou.
"Comments: " - komentář.
"Content-type: " - určuje kódování obsahu - text/plain nebo text/html a znakovou sadu.
"Mime-version: " - nastavuje verzi specifikace MIME. Používá se Mime-version: 1
"X-???" - Další parametry, které nejsou specifikovány v MIME, ale jsou používané různými programy.
např.:
"X-Priority: 1" - vysoká priorita.
"X-Mailer: PHP" - identifikace programu, který byl použit k odeslání emailu.
Poslední příkaz odeslaný mail serveru nebude nic jiného než "quit". Tím dojde k ukončení spojení.
To je pro dnešek vše. Berte tento článek jako pipis protokolu SMTP. Pokud budete chtít přes PHP odesílat email, je mnhem lehčí použít funkci mail(). Pokud z nějakého důvodu nemůžete použít funkci mail(), je možné použít přímou komunikaci se vzdáleným mail serverem, ale to si ukážeme až někdy příště. Také si řekneme něco o protokolech POP3 a HTML.
Na závěr je tu ještě jeden obrázek z telnetu a výpis z logu mail serveru...
Log z mail serveru:
13.10.2002 13:17:44 - Requested SMTP connection from 127.0.0.1
13.10.2002 13:17:44 - ( 42) 220 127.0.0.1 ArGoSoft Mail Server Plus for WinNT/2000, Version 1.8 (1.8.1.7)
13.10.2002 13:17:50 - ( 42) helo 127.0.0.1
13.10.2002 13:17:50 - ( 42) 250 Welcome [127.0.0.1], pleased to meet you
13.10.2002 13:18:06 - ( 42) mail from: [email protected]
13.10.2002 13:18:06 - ( 42) 250 Sender "[email protected]" OK...
13.10.2002 13:18:14 - ( 42) rcpt to: devil@devil
13.10.2002 13:18:14 - ( 42) 250 Recipient "devil@devil" OK...
13.10.2002 13:18:24 - ( 42) data
13.10.2002 13:18:24 - ( 42) 354 Enter mail, end with "." on a line by itself
13.10.2002 13:18:29 - [ 43] Delivering to devil@devil
13.10.2002 13:18:29 - ( 42) 250 Message accepted for delivery.
13.10.2002 13:18:29 - [ 43] Message from [email protected] delivered to devil@devil
13.10.2002 13:18:33 - ( 42) quit
13.10.2002 13:18:33 - ( 42) 221 Aba he
13.10.2002 13:18:33 - SMTP connection with 127.0.0.1 ended. ID=42
13.10.2002 13:17:44 - Requested SMTP connection from 127.0.0.1
13.10.2002 13:17:44 - ( 42) 220 127.0.0.1 ArGoSoft Mail Server Plus for WinNT/2000, Version 1.8 (1.8.1.7)
13.10.2002 13:17:50 - ( 42) helo 127.0.0.1
13.10.2002 13:17:50 - ( 42) 250 Welcome [127.0.0.1], pleased to meet you
13.10.2002 13:18:06 - ( 42) mail from: [email protected]
13.10.2002 13:18:06 - ( 42) 250 Sender "[email protected]" OK...
13.10.2002 13:18:14 - ( 42) rcpt to: devil@devil
13.10.2002 13:18:14 - ( 42) 250 Recipient "devil@devil" OK...
13.10.2002 13:18:24 - ( 42) data
13.10.2002 13:18:24 - ( 42) 354 Enter mail, end with "." on a line by itself
13.10.2002 13:18:29 - [ 43] Delivering to devil@devil
13.10.2002 13:18:29 - ( 42) 250 Message accepted for delivery.
13.10.2002 13:18:29 - [ 43] Message from [email protected] delivered to devil@devil
13.10.2002 13:18:33 - ( 42) quit
13.10.2002 13:18:33 - ( 42) 221 Aba he
13.10.2002 13:18:33 - SMTP connection with 127.0.0.1 ended. ID=42

Žádné komentáře:
Okomentovat