/usr/bin/mail no interpreta nuevas líneas

/usr/bin/mail no interpreta nuevas líneas

Tengo un problema extraño al enviar un gato al correo.

Tengo un archivo de texto simple que se compiló a partir de un script, que es un informe sobre las carpetas que se copiaron en el script. Luego quiero enviar este informe por correo electrónico a los administradores del sistema.

El script genera el informe perfectamente. cuando corro

cat /tmp/report.txt

Obtengo resultados bien formateados con todos los saltos de línea que esperaría.

Copy report. Started on Mon Sep 28 13:37:57 BST 2015

Run in progress?: Yes

3 directories were copied.

Copy started on 2015.09.28 at 13:37:57
Copying /mnt/smb/New folder (10) to /mnt/backup/New folder (10)
Copy completed on 2015.09.28 at 13:37:57
Copy info:
0.01user 0.47system 0:01.83elapsed 26%CPU (0avgtext+0avgdata 2668maxresident)k
0inputs+355896outputs (0major+150minor)pagefaults 0swaps


Copy started on 2015.09.28 at 13:37:59
Copying /mnt/smb/New folder (14) to /mnt/backup/New folder (14)
Copy completed on 2015.09.28 at 13:37:59
Copy info:
0.00user 0.41system 0:01.78elapsed 23%CPU (0avgtext+0avgdata 2620maxresident)k
0inputs+355896outputs (0major+152minor)pagefaults 0swaps


Copy started on 2015.09.28 at 13:38:01
Copying /mnt/smb/New folder (18) to /mnt/backup/New folder (18)
Copy completed on 2015.09.28 at 13:38:01
Copy info:
0.00user 0.28system 0:01.71elapsed 16%CPU (0avgtext+0avgdata 2768maxresident)k
0inputs+355896outputs (0major+151minor)pagefaults 0swaps

Sin embargo, por alguna razón, cuando envío esto al correo

cat /tmp/report.txt | mail -s "Copy Report" [email protected]

o

mail -s "Copy Report" [email protected] < /tmp/report.txt

Este es el correo electrónico que recibo.

Copy report. Started on Mon Sep 28 13:37:57 BST 2015

Run in progress?: Yes

3 directories were copied.

Copy started on 2015.09.28 at 13:37:57
Copying /mnt/smb/New folder (10) to /mnt/backup/New folder (10) Copy completed on 2015.09.28 at 13:37:57 Copy info:
0.01user 0.47system 0:01.83elapsed 26%CPU (0avgtext+0avgdata 2668maxresident)k
0inputs+355896outputs (0major+150minor)pagefaults 0swaps


Copy started on 2015.09.28 at 13:37:59
Copying /mnt/smb/New folder (14) to /mnt/backup/New folder (14) Copy completed on 2015.09.28 at 13:37:59 Copy info:
0.00user 0.41system 0:01.78elapsed 23%CPU (0avgtext+0avgdata 2620maxresident)k
0inputs+355896outputs (0major+152minor)pagefaults 0swaps


Copy started on 2015.09.28 at 13:38:01
Copying /mnt/smb/New folder (18) to /mnt/backup/New folder (18) Copy completed on 2015.09.28 at 13:38:01 Copy info:
0.00user 0.28system 0:01.71elapsed 16%CPU (0avgtext+0avgdata 2768maxresident)k
0inputs+355896outputs (0major+151minor)pagefaults 0swaps

¿Lo que da? ¡Algunos saltos de línea están ahí, otros no! Intenté editar el archivo tanto en vi como en nano y me aseguré de que los saltos de línea estuvieran realmente allí. También los eliminé y los volví a crear y el resultado del correo electrónico sigue siendo el mismo.

Usando /usr/bin/correo

Informacion adicional:

Escribí a mano lo siguiente en un archivo de texto e hice lo mismo para enviar el correo. Puse la palabra "Copiar" al comienzo de cada línea.

Copy started on 2015.09.28 at 13:37:57
Copying /mnt/smb/New folder (10) to /mnt/backup/New folder (10)
Copy completed on 2015.09.28 at 13:37:57
Copy info:
Copy 0.01user 0.47system 0:01.83elapsed 26%CPU (0avgtext+0avgdata 2668maxresident)k
Copy 0inputs+355896outputs (0major+150minor)pagefaults 0swaps

Esto es lo que recibí en el correo electrónico:

Copy started on 2015.09.28 at 13:37:57
Copying /mnt/smb/New folder (10) to /mnt/backup/New folder (10) Copy completed on 2015.09.28 at 13:37:57 Copy info:
0.01user 0.47system 0:01.83elapsed 26%CPU (0avgtext+0avgdata 2668maxresident)k
0inputs+355896outputs (0major+150minor)pagefaults 0swaps

Luego eliminé todas las palabras "Copiar". Esto es lo que recibí en el correo electrónico.

Started on 2015.09.29 at 09:46:49
Copying /mnt/smb/New folder (10) to /mnt/backup/New folder (10) Completed on 2015.09.29 at 09:46:49
Info:
0.00user 0.46system 0:01.98elapsed 23%CPU (0avgtext+0avgdata 2552maxresident)k
0inputs+355896outputs (0major+149minor)pagefaults 0swaps

Pensé que podría tener algo que ver con la palabra Copiar, ¡pero todavía tengo una línea sin salto de línea!

Esta es la salida decat -vet /tmp/report.txt

Copy report. Started on Mon Sep 28 13:37:57 BST 2015$
$
Run in progress?: Yes$
$
$
$
3 directories were copied.$
$
$
Copy started on 2015.09.28 at 13:37:57$
Copying /mnt/smb/New folder (10) to /mnt/backup/New folder (10)$
Copy completed on 2015.09.28 at 13:37:57$
Copy info:$
0.01user 0.47system 0:01.83elapsed 26%CPU (0avgtext+0avgdata 2668maxresident)k$
0inputs+355896outputs (0major+150minor)pagefaults 0swaps$
$
$
Copy started on 2015.09.28 at 13:37:59$
Copying /mnt/smb/New folder (14) to /mnt/backup/New folder (14)$
Copy completed on 2015.09.28 at 13:37:59$
Copy info:$
0.00user 0.41system 0:01.78elapsed 23%CPU (0avgtext+0avgdata 2620maxresident)k$
0inputs+355896outputs (0major+152minor)pagefaults 0swaps$
$
$
Copy started on 2015.09.28 at 13:38:01$
Copying /mnt/smb/New folder (18) to /mnt/backup/New folder (18)$
Copy completed on 2015.09.28 at 13:38:01$
Copy info:$
0.00user 0.28system 0:01.71elapsed 16%CPU (0avgtext+0avgdata 2768maxresident)k$
0inputs+355896outputs (0major+151minor)pagefaults 0swaps$

Respuesta1

Probablemente estés sufriendo del "formato=fluido"característicaintroducido hace mucho tiempo, verrfc2646.

Probablemente encontrará que algunas líneas tienen un carácter de espacio al final. Algunos lectores de correo interpretan que esto significa "concatenar esta línea con la siguiente y luego rehacer el ajuste del texto para que las líneas se ajusten al ancho de la pantalla".

Normalmente, esto sólo debe hacerse si su correo tiene la Content-Typeopción de encabezado format=flowed, pero hoy en día, debido a la multitud que no utiliza Unix, esto se ha convertido en un valor predeterminado.

Úselo cat -veten sus datos para ver si hay espacios finales. Úselo sed 's/ \+$//'para eliminarlos.


No vi espacios finales ni caracteres de control ni retornos de carro en sus datos, por lo que no hay excusa real para que su remitente los manipule.

Un último intento: como sugirió Andrzej A. Filip, en lugar de mailir directamente a sendmail. Esto le permitirá agregar un encabezado de tipo de contenido explícito. P.ej:

(echo 'Subject: Copy Report'
 echo 'Content-Type: text/plain; charset=us-ascii; format=fixed'
 echo
 cat /tmp/report.txt
) |  sendmail [email protected]

Lo último echoes finalizar los encabezados antes de los datos. Es posible que sendmail no esté en su RUTA, busque en /sbin y /usr/sbin, etc.

información relacionada