correo

  • Cliente de correo para Mailgun escrito en Bash

    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.

  • Cómo arreglar los filtros en Gmail

    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.

  • Cómo deshabilitar IPv6 en Exim

    Luego de haber instalado Exim en mi servidor Debian 10 y configurar mi servidor Debian para que el correo a root sea redireccionado a mi casilla de GMail, me encontré con que los mensajes salientes eran rechazados por Google.

    Este artículo demuestra cómo deshabilitar IPv6 en exim4 para evitar problemas con el correo saliente hacia Google y para mejorar la seguridad de la instalación.

  • Cómo loguear todo el correo saliente con UFW o iptables

    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.

  • Configurar el envío de correo a través de un relayhost con autenticación en smtpd (OpenBSD)

    Supongamos que contamos con un servidor OpenBSD y necesitamos enviar correo desde la red local, por ejemplo resúmenes diarios de logwatch o AIDE, a través de un relayhost (servidor de correo para el dominio de la red local) seguro (SMTPS) que requiere autenticación. Este artículo explica cómo configurar smtpd para que reenvíe todo el correo saliente hacia un servidor de correo seguro en la red local sobre TLS con autenticación. De esta forma, todo el correo saliente desde nuestro servidor OpenBSD será reenviado hacia el servidor de correo del dominio, autenticando con una cuenta de correo específica y rescribiendo la cabecera "mail-from" para todos los mensajes salientes. Lo cual corresponde con la típica configuración para un sitio de Internet o servidor simple que requiere enviar correo dentro de un dominio seguro.

  • Configurar un servidor Debian para que el correo a root sea redireccionado a una casilla externa

    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.

  • eBay envía publicidad engañosa por correo electrónico

    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.

  • Enviar correo con netcat, telnet

    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.

  • Enviar correo electrónico sin cliente ni servidor de mail vía HTTPS con Mailgun

    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.

  • Enviar mails desde la línea de comandos

    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
  • Instalar y configurar exim4 en Debian 10

    En una instalación mínima de Debian, me encontré con que no hay soporte para el envío de correo:

    root@linuxito:~# mail
    -bash: mail: command not found
    

    Esto significa que no se soporta el envío y recepción de ningún tipo de mensaje, ya sea externo o interno, incluyendo los mensajes automáticos generados por aplicaciones y tareas programadas (cron). Especialmente cuando ocurren errores al ejecutar cronjobs.

    Este artículo explica cómo instalar y configurar exim4 para tener servicio de correo y configurar el servidor como sitio de Internet, lo que permite enviar correo electrónico hacia el exterior pero no recibir ni aceptar correo entrante.

  • Interactuar con un servidor de correo POP mediante telnet/netcat

    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.

  • Mostrar sólo los mensajes no leídos en Gmail

    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.

  • Script bash para enviar correo utilizando la API de Mailgun

    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).

  • Suscribirse a los anuncios de PHP

    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.