Une fois qu’on a vérifié les émetteurs et les destinataires (partie 1/2), on peut faire des essais d’envoi. L’envoi consiste à créer un email et à l’envoyer à sa destination en utilisant le protocole SMTP. La destination est fournie par le champ MX de l’enregistrement DNS du domaine du destinataire.
Pour créer un email, on peut utiliser la commande exim, avec l’option -v pour voir l’échange entre le client du mail, exim dans le cas présent, et le serveur SMTP distant, aspmx.l.google.com, pour le domaine tohero.fr
Lorsqu’on lance le programme exim comme ci-dessous, on se retrouve dans le dialogue SMTP directement. Pour définir le sujet du mail, il faut taper « Subject: mon sujet » et un retour à la ligne, puis saisir le message. Pour terminer la saisie du message, il faut taper . et retour à la ligne ou Ctrl+D
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
arditi-host3:~# exim -v aa2@tohero.fr Subject: test Bonjour . LOG: MAIN <= alain@arditi.fr U=root P=local S=332 delivering 1rvBpA-0002z1-5b R: dnslookup for aa2@tohero.fr T: remote_smtp for aa2@tohero.fr Connecting to aspmx.l.google.com [142.251.168.27]:25 ... connected SMTP<< 220 mx.google.com ESMTP v3-20020adfebc3000000b003460665686fsi1845359wrn.1051 - gsmtp SMTP>> EHLO arditi-host3.arditi.net SMTP<< 250-mx.google.com at your service, [51.159.28.23] 250-SIZE 157286400 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 SMTP>> STARTTLS SMTP<< 220 2.0.0 Ready to start TLS SMTP>> EHLO arditi-host3.arditi.net SMTP<< 250-mx.google.com at your service, [51.159.28.23] 250-SIZE 157286400 250-8BITMIME 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 SMTP>> MAIL FROM:<alain@arditi.fr> SIZE=1365 SMTP>> RCPT TO:<aa2@tohero.fr> will write message using CHUNKING SMTP>> BDAT 342 LAST SMTP<< 250 2.1.0 OK v3-20020adfebc3000000b003460665686fsi1845359wrn.1051 - gsmtp SMTP<< 250 2.1.5 OK v3-20020adfebc3000000b003460665686fsi1845359wrn.1051 - gsmtp SMTP<< 250 2.0.0 OK v3-20020adfebc3000000b003460665686fsi1845359wrn.1051 - gsmtp SMTP>> QUIT SMTP(close)>> LOG: MAIN => aa2@tohero.fr R=dnslookup T=remote_smtp H=aspmx.l.google.com [142.251.168.27] X=TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=yes DN="CN=mx.google.com" K C="250 2.0.0 OK v3-20020adfebc3000000b003460665686fsi1845359wrn.1051 - gsmtp" LOG: MAIN Completed arditi-host3:~# |
Le détail de l’échange SMTP nous permet de voir exactement comment l’email est envoyé. Les lignes
SMTP>> indiquent les messages émis par le serveur local
SMTP<< indiquent les messages reçus du serveur distant
On peut voir qui est le destinataire « RCPT TO: », qui est l’émetteur « MAIL FROM: », qui est le serveur SMTP distant: « Connecting to aspmx.l.google.com », comment se présente le serveur local: « EHLO arditi-host3.arditi.net ». Le message « completed » indique que le mail a été envoyé au serveur SMTP distant.
Les lignes « LOG: MAIN » sont les lignes qu’on retrouve dans le fichier de log d’Exim /var/log/exim4/mainlog qui contient le détail de tous les envois/réception d’email
1 2 3 4 5 6 7 |
arditi-host3:~# tail /var/log/exim4/mainlog 2024-04-12 09:31:18 Start queue run: pid=7666 2024-04-12 09:31:18 End queue run: pid=7666 2024-04-12 09:58:54 1rvBo6-0002yh-50 <= alain@arditi.fr U=root P=local S=333 2024-04-12 09:58:54 1rvBo6-0002yh-50 => aa2@tohero.fr R=dnslookup T=remote_smtp H=aspmx.l.google.com [142.251.168.27] X=TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=yes DN="CN=mx.google.com" K C="250 2.0.0 OK dd12-20020a0560001e8c00b0034557e685a1si1823281wrb.34 - gsmtp" 2024-04-12 09:58:54 1rvBo6-0002yh-50 Completed arditi-host3:~# |
« 1rvBo6-0002yh-50 » est l’identifiant Exim du message.
Avec ce test, on peut détecter de suite les divers problèmes, comme un refus de connexion, un port 25 bloqué, un blocage par la politique anti-spam du destinataire, une boîte aux lettres inexistante, etc…
bsd-mailx pour tester
bsd-mailx est un client mail un peu plus évolué que Exim ou Sendmail qui permet de voir plus simplement les échanges. C’est une petite surcouche… Il suffit d’installer le paquet « bsd-mailx » pour l’utiliser. On peut l’appeler par la commande mail :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
arditi-host3:~# mail -v aa2@tohero.fr Subject: Test Bonjour . Cc: LOG: MAIN <= alain@arditi.fr U=root P=local S=442 delivering 1rvCQu-0003Bg-6R R: dnslookup for aa2@tohero.fr T: remote_smtp for aa2@tohero.fr Connecting to aspmx.l.google.com [66.102.1.26]:25 ... connected SMTP<< 220 mx.google.com ESMTP y18-20020a5d6152000000b0033ec3e493ccsi1863889wrt.179 - gsmtp SMTP>> EHLO arditi-host3.arditi.net SMTP<< 250-mx.google.com at your service, [51.159.28.23] 250-SIZE 157286400 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 SMTP>> STARTTLS SMTP<< 220 2.0.0 Ready to start TLS SMTP>> EHLO arditi-host3.arditi.net SMTP<< 250-mx.google.com at your service, [51.159.28.23] 250-SIZE 157286400 250-8BITMIME 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 SMTP>> MAIL FROM:<alain@arditi.fr> SIZE=1479 SMTP>> RCPT TO:<aa2@tohero.fr> will write message using CHUNKING SMTP>> BDAT 456 LAST SMTP<< 250 2.1.0 OK y18-20020a5d6152000000b0033ec3e493ccsi1863889wrt.179 - gsmtp SMTP<< 250 2.1.5 OK y18-20020a5d6152000000b0033ec3e493ccsi1863889wrt.179 - gsmtp SMTP<< 250 2.0.0 OK y18-20020a5d6152000000b0033ec3e493ccsi1863889wrt.179 - gsmtp SMTP>> QUIT SMTP(close)>> LOG: MAIN => aa2@tohero.fr R=dnslookup T=remote_smtp H=aspmx.l.google.com [66.102.1.26] X=TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=yes DN="CN=mx.google.com" K C="250 2.0.0 OK y18-20020a5d6152000000b0033ec3e493ccsi1863889wrt.179 - gsmtp" LOG: MAIN Completed arditi-host3:~# |
A noter que notre client, bsd-mailx ou Exim, communique directement avec le serveur SMTP cible. Il n’y a pas de connexion sur le serveur Exim local. Exim est en mode client.