271 votos

¿Cómo puedo enviar un archivo como datos adjuntos de correo electrónico mediante la línea de comandos de Linux?

He creado un script que se ejecuta cada noche en mi servidor Linux que utiliza mysqldump para copia de seguridad de cada uno de mis bases de datos MySQL para los archivos .sql y paquetes de un comprimido archivo .tar. El siguiente paso que quiero lograr es enviar ese archivo tar a través de correo electrónico a un servidor de correo remoto para su custodia. He sido capaz de enviar el crudo de secuencia de comandos en el cuerpo de un correo electrónico mediante la canalización de la copia de seguridad del archivo de texto a mailx así:

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

cat ecos de la copia de seguridad del archivo de texto que se canaliza en el mailx programa con la dirección de correo del destinatario pasa como argumento.

Mientras este cumple con lo que necesito, creo que podría ser un paso más, ¿hay alguna manera, el uso de secuencias de comandos de shell o de otro tipo, para enviar el archivo .tar archivo a un mensaje de correo electrónico saliente como un archivo adjunto? Vencería a tener que lidiar con los mensajes de correo electrónico que contienen los datos del encabezado y, a menudo, han ajuste de problemas, etc.

282voto

rynop Puntos 7818

Ninguno de los mutt trabajó para mí. Fue pensando la dirección de correo electrónico forma parte de la attachemnt. Tuvo que hacer:

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

78voto

Daniel Fone Puntos 1326

O, en su defecto mutt:

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

40voto

Chris N Puntos 484

Si buscas en man mailx , el programa mailx no tiene una opción para adjuntar un archivo. Usted podría utilizar otro programa como mutt.

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

Opciones de línea de comandos para mutt se pueden mostrar con mutt -h .

38voto

Nathan Fellman Puntos 31310

Dependiendo de la versión de linux que puede ser llamado correo. Para citar a @ David anteriormente:

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

o también:

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

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X