1 votes

Renvoi d'un courriel à partir de la ligne de commande

Je veux reproduire un problème lié à un courrier électronique envoyé depuis un système sur lequel je n'ai aucun contrôle. Pour ce faire, je veux imiter cet e-mail problématique.

J'ai le courrier exact tel qu'il a été reçu sous forme de fichier texte (en-têtes + corps codé en base64). Comment puis-je envoyer un courrier très similaire à partir d'un de nos systèmes ?

J'ai essayé

mail -s "Test" me@nowhere.net < mail.txt

Mais il met le fichier texte entier dans le corps.

Merci d'avance Jens

0voto

Jos Points 23588

Selon RFC 5322 Format de message Internet le corps du message commence après une ligne vide.

Vous pouvez utiliser awk pour imprimer tout ce qui se trouve dans mail.txt après la première ligne vide, comme ceci :

awk '/^$/,0' mail.txt

Vous pourriez donc faire quelque chose comme

awk '/^$/,0' mail.txt | mail -s "Test" me@nowhere.net

Cela, cependant, commencera la sortie avec une ligne vide. Si vous voulez éviter cela, utilisez une méthode un peu plus compliquée, à savoir awk gamme :

awk 'p; !/./{p=0}/^$/{p=1}' mail.txt | mail -s "Test" me@nowhere.net

Ce dernier truc est un que j'ai pris aquí .

0voto

Sebastian Stark Points 5932

Si la machine a le sendmail installé (normalement il devrait l'avoir, ceci a été testé avec postfix installé), alors vous pouvez utiliser une commande comme celle-ci :

sendmail -i -f from@example.org to@example.org <test.mail

Mit test.mail comme ceci par exemple :

From: from@example.org
To: to@example.org
Subject: Test
X-Spam-Flag: NO

some content

Il est fort probable que vous ne puissiez pas reproduire une grande partie du courriel original, car de nombreux en-têtes ne sont ajoutés ou modifiés que plus tard par le serveur de messagerie lui-même.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X