Supongamos que deseamos enviar un correo desde Bash con formato HTML y estamos en condiciones adversas sin muchos medios y nos las tenemos que arreglar a pura maña para enviar un correo con un adjunto.
#Lo primero que hacemos es revisar que este exista
if [ -s "diferencias.txt" ] #Nos fijamos que exista
then
echo "mail con mensaje de lleno" # mensaje
_msg410=""
_msg420="Texto de cabecera
"
_msg430="
bla bla bla bla
"
_msg440="
"
_msg450=" | titulo campo 1 | titulo campo 2 | ... |
" #MIME tiene un limite de 990 caracteres por linea, esten atentos!
_msg460=" | "
_msg470=`cat diferencias.txt #El archivo con los datos en html
_msg480=" |
"
_msg41=$_msg410$_msg420$_msg430$_msg440$_msg450$_msg460$_msg470$_msg480 #armo un chorizo
echo $_msg41 >outm.tmp #guardo todo en un temporal
sed -e $'s/ ---- /\\\n/g' outm.tmp > outm.html # mi marca de corte de linea es "----" para no pasarme de 990 caracteres
#armo el mail en mime
(
echo "From: remitente@daf.com.ar " #remitente
echo "To: diego@daf.com.ar,otro@daf.com.ar " #destinatarios
echo "MIME-Version: 1.0" #version de mime a usar
echo 'Content-Type: multipart/mixed; boundary="-q1w2e3r4t5by3503"' #muy importante para marcar que van varias cosas
echo "---q1w2e3r4t5by3503" #el separador de partes
echo "Content-Type: text/html" #el body del mail es html
echo "Content-Disposition: inline" #que se muestre
echo ""
cat outm.html #el texto completo del body
echo "---q1w2e3r4t5by3503" #fin del body, otra parte
echo "Content-Transfer-Encoding: base64" #le aviso que lo siguiente es un adjunto en base64
echo "Content-Disposition: attachment; filename=diferencias.txt"
uuencode -m diferencias.txt diferencias.txt; #clavo el adjunto
echo "---q1w2e3r4t5by3503--" #fin del ajunto
) | mailx -t -s "Diferencias en la categoría de Prestadores / Contratos" # lo envio con un lindo asunto
fi