web-dev-qa-db-fra.com

Fixation Sendmail

Je me demandais s'il est possible d'inclure un attachement avec Sendmail. Je génère les fichiers de messagerie électronique suivants.eml avec la mise en page suivante

From: Company Name <[email protected]>
To: [email protected]
CC: [email protected]
Subject: Generated Output

Mime-Version: 1.0

This will be the body copy even though it's terrible

J'envoie ces courriels en utilisant

# /usr/sbin/sendmail -t < emailfile.eml

Cette partie est le dossier de travail mais j'aimerais inclure une pièce jointe à cet email et je n'ai pas compris comment le faire

10
TheLovelySausage

Publier la solution qui a fonctionné pour moi au cas où cela peut aider quelqu'un d'autre, désolé, il est si tard.

La manière la plus fiable que j'ai trouvée pour avoir fait cela était d'inclure la pièce jointe en tant que base64 dans le fichier EML lui-même, ci-dessous est un exemple du contenu de l'EML.

Remarque 01: La base64 du fichier provient de l'exécution de la commande base64 sous Linux à l'aide de la pièce jointe sous forme d'argument (doit fonctionner avec n'importe quel outil de base64)

NOTE 02: La chaîne utilisée pour la limite est juste absurde à l'aide de la date et des lettres majuscules aléatoires

Nom de fichier: emlfile.eml

From: Sender <[email protected]>
To: [email protected]
CC: [email protected]
Disposition-Notification-To: [email protected]
Subject: Generic Subject
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="19032019ABCDE"

--19032019ABCDE
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Generic Body Copy

--19032019ABCDE
Content-Type: application;
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="MyPdfAttachment.pdf"

*base64 string goes here (no asterix)*

--19032019ABCDE--

Ensuite, le fichier FileName.eml peut être envoyé à l'aide de la commande et inclura la pièce jointe.

# /usr/sbin/sendmail -t < filename.eml
5
TheLovelySausage

Avec mutt vous pouvez simplement utiliser:

echo "This is the message body" | mutt -a "/path/to/file_to_attach" -s "subject of message" -- [email protected]

Utilisation de mail commande:

mail -a /opt/emailfile.eml -s "Email File" [email protected] < /dev/null

-a est utilisé pour les pièces jointes.

Vous pouvez utiliser SendEmail:

sendemail -t [email protected] -m "Here is the file." -a attachmentFile
12
serenesat