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ó

[modifica]

En 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