Simple Mail Transfer Protocol
SMTP és l'acrònim de 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 ordinador i/o diversos dispositius (PDAs, mòbils, etc.). Per poder adaptar-se a les necessitats sorgides del creixement i la popularitat d'Internet s'han creat diverses ampliacions d'aquest protocol, com ara poder enviar text amb format o fitxers adjunts.
SMTP es basa en el model client-servidor, on un client envia un missatge a un o a diversos receptors.
En el conjunt de protocols TCP/IP, l'SMTP va per damunt del TCP i utilitza normalment el port 25 al servidor per establir la connexió.
Exemple de comunicació
modificaEn primer lloc cal establir una connexió entre l'emisor (client) i el receptor (servidor). Això es pot fer automàticament amb un programa client de correu o mitjançant un client TELNET.
Servidor: 220 Servidor ESMTP Client: HELO Servidor: 250 Hello, please meet you Client: MAIL FROM: jo@domini.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@subdomini.com Client: Client: Hola, Client: Això és una prova. Client: Adéu. Client: . Servidor: 250 Ok: queued as 12345 Client: quit Servidor: 221 Bye
A l'exemple es poden veure les ordres 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 línia 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 fins que es repeteixi la 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 perquè finalment arribi a un servidor del domini receptor