Simple Mail Transfer Protocol
SMTP significa Simple Mail Transfer Protocol, és a dir protocol simple de transferència de correu i és un protocol de xarxa basat en text utilitzat per a l'intercanvi de missatges de correu electrònic entre ordenador i/o diversos dispositius (PDAs, mòbils, etc). Per poder adaptar-se a les necessitats sorgides del creixement i la popularitat d'Internat s'han fet diverses ampliacions d'aquest protocol, com poder enviar text amb format o arxius adjunts.
SMTP es basa en el model client-servidor, on un client envía un missatge a un o a diversos receptors.
Exemple de comunicació
En primer lloc cal establir una connexió entre l'emisor (client) i el receptor (servidor). Això es pot fer automàticament amb un programa cleint de correu o mitjançant un client TELNET.
Servidor: 220 Servidor ESMTP Client: HELO Servidor: 250 Hello, please meet you Client: MAIL FROM: jo@dominio.com Servidor: 250 Ok Client: RCPT TO: destinatari@sudomini.com Servidor: 250 Ok Client: DATA Servidor: 354 End data with <CR><LF>.<CR><LF> Client: Subject: Camp d'assumpte Client: From: jo@domini.com Client: To: destinatari@sudomini.com Client: Client: Hola, Client: Això és una proba. Client: Adeu. Client: . Servidor: 250 Ok: queued as 12345 Client: quit Servidor: 221 Bye
A l'exemple es poden veure les comandes bàsiques d'SMTP:
- HELO per obrir una sessió amb el servidor
- MAIL FROM per indicar qui envia el missatge
- RCPT TO per indicar el destinatari
- DATA per indicar l'inici del missatge, que finalitzarà quan hi hagi una linea amb tan sols un punt.
- QUIT per tancar la sessió
Les respostes que dona el servidor poden ser de diverses classes:
- 2XX per a una resposta afirmativa
- 3XX per a una resposta temporal afirmativa
- 4XX per a una resposta d'error. S'espera a que es repeteixi l'instrucció
- 5XX per a una resposta d'error
Un cop el servidor rep el missatge finalitzat amb un punt el pot
- Emmagatzemar si és per a un destinatari que pertany al seu domini
- Retransmetre'l a un altre servidor per a que finalment arrivi a un servidor del domini receptor