Envoyer un courrier électronique

Problème

Vous souhaitez vous connecter directement à un serveur SMTP pour envoyer un courrier électronique.

Solution

Connectez-vous à un serveur SMTP avec un client TCP et échangez en respectant le protocole SMTP (Simple Mail Transfer Protocol).

Discussion

Pour vous connecter à un serveur SMTP, utilisez create_tcp_client() comme précédemment et indiquez le nom de la machine hébergeant le serveur web en premier argument, et un numéro de port en second argument, sachant que, par défaut, un serveur SMTP écoute sur le port 25.

Le protocole SMTP est basé sur des échanges par lignes de texte, délimitées par les deux caractères consécutifs de retour chariot et de saut de ligne, à coder "\r\n" en C. De plus, tous les messages envoyés par le serveur SMTP commencent par un code correspondant à la signification du message. Cela autorise donc le serveur à compléter par un message qui n’est pas forcément explicite ou qui peut même être humoristique. Nous ne pouvons donc pas compter sur autre chose que le code pour interpréter la signification de ce que renvoie le serveur SMTP. La liste des codes et leur signification se trouve décrite dans la RFC 2821 qui concerne le protocole.

Un échange de courrier électronique s’effectue comme le montre l’exemple suivant. Nous avons ajouté un S: pour les lignes retournées...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Créer un serveur HTTP
Suivant
Récupérer un message électronique sur un serveur POP3