Le protocole SMTP (Simple Mail Transfer Protocol) permet de transférer les e-mails de manière fiable et efficace. Pour que les applications SMTP fonctionnent, le message doit être correctement formaté et les processus SMTP doivent être exécutés à la fois sur le client et sur le serveur.
Les formats de message SMTP exigent un en-tête et un corps de message. Si le corps du message peut contenir n'importe quelle quantité de texte, l'en-tête doit contenir une adresse de messagerie de destinataire et une adresse d'expéditeur correctement mises en forme. Toute autre information est facultative dans l'en-tête.
Lorsqu'un client envoie un e-mail, le processus SMTP client se connecte à un processus SMTP serveur sur le port réservé 25. Une fois la connexion établie, le client essaie d'envoyer l'e-mail au serveur via la connexion. Lorsque le serveur a reçu le message, il le place sur un compte local si le destinataire est local, ou le dirige à l'aide du même processus de connexion SMTP vers un autre serveur de messagerie qui devra l'acheminer.
Le serveur de messagerie de destination peut ne pas être en ligne, ou peut être occupé, lors de l'envoi des messages. Par conséquent, le protocole SMTP met le message en attente pour envoi ultérieur. Régulièrement, le serveur vérifie si des messages se trouvent dans la file d'attente et essaie de les renvoyer. À l'issue d'une durée donnée, si le message n'est toujours pas transmis, il est renvoyé à son expéditeur comme non délivrable.