287 votes

Comment envoyer un fichier en tant que pièce jointe à un courrier électronique à l'aide de la ligne de commande Linux?

J'ai créé un script qui s'exécute tous les soirs sur mon serveur Linux qui utilise mysqldump sauvegarder chacun de mes bases de données MySQL .les fichiers sql et les paquets ensemble sous la forme d'un comprimé .fichier tar. La prochaine étape je veux accomplir consiste à envoyer ce fichier tar par e-mail à un serveur de messagerie à distance pour plus de sécurité. J'ai été en mesure d'envoyer le raw script dans le corps d'un email par la tuyauterie de la sauvegarde en fichier texte à l' mailx comme:

$ cat mysqldbbackup.sql | mailx backup@email.com

cat fait écho à la sauvegarde d'un fichier de texte qui est transmis dans l' mailx programme avec l'adresse email du destinataire passée en argument.

Tout ceci accomplit ce dont j'ai besoin, je pense que ça pourrait être une étape mieux, Est-il possible, à l'aide de scripts shell ou autre, pour envoyer le comprimé .fichier tar pour l'expédition d'un courriel message en tant que pièce jointe? Ce serait battu d'avoir à traiter avec de très longs messages électroniques qui contiennent des données d'en-tête et ont souvent de la parole de l'habillage de problèmes, etc.

297voto

rynop Points 7818

Aucun des mutt a travaillé pour moi. Il pensait que l'adresse e-mail faisait partie de l'attachemnt. Devais faire:

 echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
 

79voto

Daniel Fone Points 1326

Ou, à défaut de mutt:

 gzip -c mysqldbbackup.sql | uuencode mysqldbbackup.sql.gz  | mail -s "MySQL DB" backup@email.com
 

43voto

Nathan Fellman Points 31310

En fonction de votre version de Linux, il peut s'appeler mail. Pour citer @David ci-dessus:

 mail -s "Backup" -a mysqldbbackup.sql backup@email.com < message.txt
 

ou aussi:

 cat message.txt | mail -s "Backup" -a mysqldbbackup.sql backup@email.com 
 

41voto

Chris N Points 484

En regardant man mailx , le programme mailx n'a pas d'option pour attacher un fichier. Vous pouvez utiliser un autre programme tel que mutt.

 echo "This is the message body" | mutt -a file.to.attach -s "subject of message" recipient@domain.com
 

Les options de ligne de commande pour mutt peuvent être affichées avec mutt -h .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X