correo

  • He publicado una nueva versión de mi script mailgun-mta.bash, que ahora soporta el uso de opciones y argumentos de línea de comandos como destinatario, asunto y remitente. Mi idea (tal como mencioné en artículos anteriores) es lograr reemplazar el comando mail por este script. De forma que todo el correo saliente desde un servidor sea a través del servicio en la nube de Mailgun.

  • Utilizo Gmail desde hace mucho tiempo y he creado diferentes tipos de reglas para redireccionar el correo entrante a otras carpetas, como una forma de organizar mi bandeja de entrada. Para mantener limpia la carpeta "Inbox", todo los mensajes que son filtrados y redireccionados a una carpeta además son archivados, es decir, no aparecen en "Inbox".

    Por alguna extraña razón, de vez en cuando los mensajes filtrados aparecían en "Inbox", es decir se les aplicaba el filtro y se etiquetaban, pero no eran archivados.

    Luego de bastante tiempo descubrí cómo solucionar el inconveniente.

  • Sospechamos que posiblemente se esté enviando SPAM desde uno de nuestros servidores (tal vez desde un sitio Wordpress comprometido) y queremos monitorear y registrar (loguear en Spanglish) todo intento de conexión TCP saliente hacia puertos 25 (SMTP) y 587 (SMTPS). Para ello es posible recurrir a la capacidad de logueo de iptables (o UFW en Ubuntu y derivados), a través de reglas simples.

  • Muchas veces, servicios como el demonio cron envían un mail al usuario root cuando ocurre un problema o un evento de seguridad, por ejemplo:

    Date: Mon, 31 Mar 2014 04:02:06 -0300
    Message-Id: <201403310702.s2V726KK031219@debian.linuxito.com>
    From: root@debian.linuxito.com (Cron Daemon)
    To: root@debian.linuxito.com
    Subject: Cron <root@debian> run-parts /etc/cron.daily
    X-Cron-Env: <SHELL=/bin/bash>
    X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
    X-Cron-Env: <MAILTO=root>
    X-Cron-Env: <HOME=/>
    X-Cron-Env: <LOGNAME=root>
    X-Cron-Env: <USER=root>
    
    /etc/cron.daily/ntpdate:
    
    31 Mar 04:02:06 ntpdate[31216]: the NTP socket is in use, exiting
    

    En estos casos, la única forma de enterarse que ocurren errores es loguearse como root y verificar si existe correo sin leer:

    root@debian# mail
    No mail for root
    

    Para evitar tener que revisar las cuentas de correo locales de root en todos nuestros servidores, en general se define un alias para que el correo sea redireccionado a una cuenta de correo electrónico externa.

  • Este es un artículo de denuncia, decidí publicarlo porque estoy harto de que me envíen mails con publicidad engañosa y falsa. Al igual que muchos otros gigantes de Internet (por ejemplo el caso de Despegar.com: Sancionan a Despegar.com por publicidad engañosa), eBay, el sitio de compras por Internet más grande del mundo, recurre a publicidad engañosa y falsa para atraer visitantes a su sitio utilizando campañas por correo electrónico.

    En mi caso en particular, como soy usuario de eBay desde hace tiempo, recibo ofertas de productos publicados como "Free Shipping" (envío gratuito), pero al ingresar al sitio descubro que no es así, es decir, tienen un costo de envío. No es una situación grave, pero es lamentable que una empresa como eBay tenga que recurrir a estas tácticas engañosas para atraer potenciales clientes, sobre todo utilizando técnicas tan intrusivas como lo es el envío de boletines por correo electrónico.

  • Una forma de probar servidores de correo SMTP consiste en conectarse directamente al puerto 25 con netcat o telnet y "chatear" con el servidor utilizando el protocolo SMTP. Para esto es necesario conocer los comandos SMTP básicos.

  • El servicio de correo electrónico suele ser el que más dolores de cabeza nos genera. Entre la configuración del dominio (DNS) y los servicios (SMTP/POP/IMAP), los correos que rebotan, los virus y el SPAM, conforman lo que tal vez sea el peor servicio que le toque administrar a un SysAdmin. Entonces, por qué mejor no delegarlo a los expertos y migrarlo al cloud.

    Este artículo explica cómo configurar un dominio y utilizar la API del servicio Mailgun para enviar correo electrónico de manera programática, sin necesidad de contar con un servidor de correo electrónico para nuestro dominio ni un cliente (MTA). Esta configuración es ideal para nuestros servidores en la nube ya que nos permite desentendernos del servicio de correo y delegar este problema a Mailgun. Por otro lado, migrar el servicio de correo a la nube es beneficioso en el sentido que toda la infraestructura que lo sustenta consume una gran cantidad de recursos (memoria, disco) que tal vez no disponemos.

    Mailgun es un servicio de correo en la nube para desarrolladores, que nos permite enviar y recibir correo desde una API a través de HTTPS. Lo mejor de todo es que Mailgun nos permite enviar de manera gratuita hasta 10.000 correos por mes.

    A continuación voy a demostrar cómo dar de alta una cuenta de Mailgun, cómo configurar un dominio correctamente para enviar correo a través de Mailgun, y cómo enviar correo desde un script Bash a través de HTTPS.

  • Hoy me tocó hacer pruebas de correo saliente con Exim 4 instalado en un servidor Debian 6.0.2. Básicamente tenía que determinar si los mails salían y si eran recibidos o rebotados. El procedimiento es sencillo.

    Primero se debe abrir el log principal de Exim en una consola usando tail con la opción '-f':

    tail -f /var/log/exim4/mainlog
  • Si tenemos la oportunidad de instalar y configurar un servidor de correo POP3, si necesitamos probar una conexión, o si se debe verificar el correcto funcionamiento de una nueva cuenta de correo, es útil conocer los comandos POP3 para conectarse directamente desde la línea de comandos prescindiendo de un cliente de correo. En este breve artículo presento un ejemplo de conexión a un servidor de correo POP3 desde la línea de comandos utilizando netcat.

  • Como muchos habrán experimentado, Gmail tiene una forma de organizar el correo totalmente distinta al resto de los servicios de correo electrónico. Y al ser un producto de Google (el más importante buscador en la historia de Internet hasta el momento) la forma de filtrar, ordenar y organizar el correo se basa en búsquedas.

  • Anteriormente presenté el servicio de correo en la nube Mailgun, que nos permite enviar y recibir correo desde una API a través de HTTPS sin necesidad de contar con un servidor ni cliente de correo electrónico. Una maravilla para administradores de sistemas y desarrolladores de software que necesitamos enviar correo de manera programática (notificaciones de aplicaciones Web, reset de contraseñas, alertas de sistemas de monitoreo, resúmenes diarios de actividad y logs, etc.)

    En esta oportunidad voy a compartir un pequeño script Bash que he desarrollado para enviar los correos de Logwatch a través de Mailgun. Este script (que está aún muy verde y en fase pre-alpha) es una especie de MTA que emula el comportamiento del comando sendmail -t. Es decir, toma todo lo necesario para enviar el mensaje desde entrada estándar (destinatario, asunto y remitente desde los headers SMTP en lugar de como argumentos de línea de comandos).

  • Desde hace varios días estuve intentando sin éxito suscribirme a la lista de correo de anuncios de PHP "Announcements", a través de la cual el equipo de desarrollo de PHP informa oficialmente sobre las nuevas versiones disponibles. Es importante estar al tanto de las nuevas versiones liberadas para saber qué bugs y vulnerabilidades (CVE) fueron corregidas. Especialmente si hemos compilado PHP desde sus fuentes, para saber rápidamente cuando es necesario recompilar y así mantener nuestras instalaciones seguras.

    Dije sin éxito porque al seleccionar la lista, ingresar mi correo, y presionar el botón "Subscribe" en la página PHP: Mailing Lists, no recibo ningún correo.

    Finalmente, logré suscribirme a la lista interactuando con el software ezmlm-idx que maneja las listas mediante el intercambio de correos. En este artículo voy a explicar cómo hacerlo.