domingo, 24 de junio de 2012

Enviando adjuntos desde un shellscript

Frecuentemente tengo que enviar la salida de un proceso por correo, como un archivo adjunto. Utilizo un agente de correo muy versatil, el mutt.

Este cliente de correo se puede utilizar en forma interactiva, como los clientes de correo más habituales. Tiene la peculiaridad de ser orientado a consola. Lo que me llevó a considerarlo para enviar adjuntos es la posibilidad de correrlo desde un shellscript, como salida  un proceso batch.Para eso me cree un archivo de configuración (mutt.rc) personalizado:

#
hdr_order From: Date: To: Cc: Subject:
#
set envelope_from_address="a@domain.com"
#
set from="a@domain.com"
# Utiliza el servidor
set smtp_url="smtp://smtp.server.domain.com"

Las personalizaciones son elementales, la dirección de correo del remitente y un servidor SMTP debidamente configurado. Luego en el shellscript invoco el mutt con esa configuración. Opté por guardar los parámetros en variables, para mejorar la legibilidad y eventualmente re aprovechar el shellscript para otra tarea

MUTT=$(which mutt)
REPORT="/tmp/reporte.csv"
MUTTRC="/home/user/mutt_reportes.rc"
RECIPIENTS="a@domain.com b@domain.com"
SUBJECT="REPORTYE DIARIO"

${MUTT} -F ${MUTTRC} -s "${SUBJECT}" -a ${REPORT} -- ${RECIPIENTS}

La ventaja de usar un agente reconocido como el mutt, en lugar scripts ad hoc, esta a la hora de atravesar filtros antispam y antivirus. Estos filtros suelen dar puntaje negativo a correos con cabezales mal formados o provenientes de agentes desconocidos o poco conocidos.

Actualización 21/Oct/2013

Mutt tiene incorporado el cliente nativo SMTP a partir de la versión 1.5.15. Esta salvedad es importante, especialmente para quienes tienen que dar soporte en equipos Linux viejos o en UNIXes (AIX,Solaris). En AIX esta disponible la versión 1.4.2 en RPM.

sábado, 2 de junio de 2012

Upgrade a Ubuntu 12.04 con alternate CD

Seguí buscando como actualizar el Ubuntu. Es un PC que se le instaló ubuntu 9:10, luego se le hizo un upgrade a 10.04. Se quería actualizar a 12.04 desde Internet. Según el sitio de ubuntu bastaba con ejecutar do-release-upgrade o update-manager. Intente esto sin éxito, por lo que vi mucha gente tenia el mismo problema.

Investigando me enteré de la existencia del alternate CD. Este CD proporciona otros mecanismos de instalación. Bajé el CD, lo monte en loopback y largue a correr la actualización. Algunas horas después, estaba utilizando el PC en Ubuntu 12.04.

Otra Idea para probar: Mientras escribía esta entrada en el blog me tope con esta pagina. La solución estaría en correr do-release-upgrade -d o update-manager -d. O esperar al mes de Julio.