Por fin me ha desquiciado :S.

Entrega de correo en peligro
Ya comenté que están jugando con medidas antispam y que eso me está perjudicando (porque lo hacen mal, claro), y es desesperante mandar correos y que te reboten.
Desde hace tiempo empleo ssh para conectar a mi servidor y desde ahí utilizar mail(1) para leer y enviar mensajes de correo electrónico cuando estoy fuera mi máquina habitual.
Vale, estoy de acuerdo con que mail no es el MUA definitivo ni para consola
(Mail User Agent, lo que vamos entendiendo por cliente de correo: se usa para componer mensajes, leerlos, etc; más sobre esto en una explicación del correo electrónico), pero a mi me va muy bien y teniendo un MTA en casa bien configurado (Mail Transport Agent, que es el que finalmente lleva el correo de un sitio a otro; la cosa no queda aquí, sigua leyendo :P), ¿para qué más?
Pues bien, como a los señores administradores de Gmail les ha dado otra vez porque estoy enviando spam desde mi dirección IP, como ya comenté hace unas semanas, y da la casualidad que envío correos a varias personas con sus cuentas en ese servicio gratuito, pues se me han hinchado las narices: la solución es emplear un smarthost que entregue el correo en nuestro lugar.
De mi ISP no quiero acordarme, porque ONO está en más listas negras que cierto ex-dirigente de Nigeria que quiere hacerte rico, así que me he centrado en usebox.net, que para eso lo pago.
Con sendmail es trivial la configuración para que el correo se entregue en otro SMTP, el de usebox.net en este caso, y que ese servidor, que sí tiene buen rollo con gmail, haga la entrega donde toque. Trivial hasta que te das con que el SMTP en cuestión no hace relay (entrega remota de tu parte) de ningún correo si no nos autentificamos con usuario y contraseña. Me parece una medida acertada por su parte, aunque eso no lo podemos conseguir con sendmail :(.
Con las mismas me he puesto a buscar un MSA (el que faltaba en la familia: Mail Submission Agent, o el encargado de pasar el mensaje a un MTA; en su descargo decir que suele ser el mismo programa que el MUA :P). La idea es que me permita usar algún sistema de autentificación por usuario y contraseña de los soportados por usebox.net, y que así me deje hacer relay.
El elegido ha sido msmtp, muy sencillo de configurar y, por ahora :P, efectivo. Incluso tiene un interfaz equivalente al que proporciona sendmail vía linea de comandos, así que mi querido mail funciona perfectamente con él ;).
Mi configuración es sencilla (ojo: chmod 0600, no sea que alguien que no debe lea contraseñas), en $HOME/.msmtprc:
defaults logfile ~/.msmtp.log account usebox host smtp.usebox.net from usuariolocal@blackshell.usebox.net auth cram-md5 user usuario password pablitoclavounclavito account default : usebox
Además hay que indicar en $HOME/.mailrc que tenemos un nuevo sendmail:
set sendmail="/usr/local/bin/msmtp"
Con esto nuestro mail empleará msmtp como si fuera el auténtico sendmail, y nostros tendremos las ventajas que nos aporta este MSA especializado ;).
La único que hay que tener en cuenta es que hemos definido solo nuestro relay autorizado y eso tiene pegas para entregas a usuarios locales.
¿Por qué? Porque no tiene mucho sentido mandar a usebox.net un correo que tendrá que entregarse en este mismo servidor (además para los usuarios locales en entrega local no añado el dominio, uno que es así :D), con lo que tendremos que recordar ese viaje extra si queremos mandar correos a usuarios locales: hay que indicar siempre el dominio (usuariolocal no significa nada para usebox.net, pero usuariolocal@blackshell.usebox.net sí).
Se pueden definir otras cuentas, pero no hay forma de elegir entre una y otra desde mail :(.
Notar que toda esta implementación de un smarthost solo afecta a los MUA que configuremos para trabajar con msmtp (mail en mi caso), el resto del sistema no se verá afectado en absoluto.
Ha sido interesante, así que dejo para otro día el análisis más profundo de lo que está pasando con gmail >:(.

![[xml]](/images/xml.gif)
