Hacer funcionar el multidrop con fetchmail


Multidrop es la funcionalidad que tiene el
fetchmail
para bajarse correo de multiples usuarios desde una sola cuenta de correo.

A veces, esta función multidrop del fetchmail no funciona correctamente, ocasionando
que algunos mensajes se pierdan, concretamente los que son reenviados (forward),
como los que provienen de listas de distribución.

Este articulo es una traducción al castellano del original titulado
“Fent anar multidrop amb fetchmail”
escrito en català y debido a varias peticiones “amables” que he recibido para traducirlo.

Descargo: El articulo ha sido traducido por decisión propia. No se trata de ninguna
norma o regla de BULMA ni ha de servir de precedente. Los artículos se publican en BULMA
libremente y sin obligación alguna por lo que no se deben exigir traducciones.

Uno de los principales problemas surje cuando en un mensaje la dirección que va en el To:
no es la del propio destinatario porque el mensaje proviene de una lista o porque iba en el
BCC. Como la dirección que va en el To: no corresponde con ningún usuario de nuestro sistema,
el fetchmail no sabe a quien enviarlo. Pero el mensaje ha llegado a la cuenta del destinatario,
es decir, la dirección estaba especificada en algún lugar, i ese lugar es “envelope-adress”.
Esta dirección se pierde cuando es uno de los casos comentados antes si el MTA no
toma la precaución de ponerla en algún sitio. Los buenos MTA lo suelen hacer, pero no es
una cosa standard, sino que cada cual lo hace a su manera.
El sendmail, que es uno de los mas extendidos lo
suele poner dentro de una cabecera denominada X-Envelope-To i por defecto el fetchmail mira
si existe una cabecera con este nombre. Es por esto que a la mayoría de los usuarios les
funciona con una configuración normal, por el hecho de que su provehedor de servicios
(ISP de ahora en adelante), debe usar un MTA que pone esta cabecera o otra conocida por
fetchmail.
Por otro lado, si el MTA usado por el ISP no lo hace o usa otra cabecera para
reescribir la dirección, fetchmail rechazará los mensajes que cumplan las
características comentadas antes, o bien los enviará al usuario definido como postmaster
dependiendo de la configuración del parámetro bouncemail.
Per ejemplo, en mi caso, el MTA de mi ISP aunque reescribe el envelope lo hace de una
manera distinta, usa una cabecera “original” con el nombre de: X-Original-To
Para ver estas cabeceras, la mayoría de clients de correo tienen una opción para mostrar
el código fuente del mensaje donde se mostrarán todas las cabeceras que han sido añadidas
a lo largo del recorrido del mensaje.
Per ejemplo un extracto del código fuente de un mensaje recibido por mi desde la lista de
distribución de BULMA marcando lo que nos interesa en rojo:

Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from localhost (localhost.localdomain [127.0.0.1])
by pinganilla.localdomain (Postfix) with ESMTP id 8156230
for <[email protected]>;
Mon, 3 Nov 2003 13:24:43 +0000 (GMT)
X-Original-To: maht@hitconysultants.
ecllipse.co.uk
Delivered-To: [email protected]
Received: from mail.ecllipse.co.uk [212.104.129.226]
by localhost with IMAP (fetchmail-5.9.11)
for [email protected] (multi-drop);
Mon, 03 Nov 2003 13:24:43 +0000 (GMT)
… …
Received: from localhost (localhost [127.0.0.1])
by itaca.bitarssa.net (Postfix) with ESMTP id C1AD3538153
for <[email protected]>;
Mon, 3 Nov 2003 14:21:30 +0100 (CET)
From: =?iso-8859-15?q?Benjam=ED=20Villoslada?=
<[email protected]>
To: LA LISTA de Bulma (con mucho =?iso-8859-15?q?tr=E1fico?=)
<[email protected]>
Subject: Re: [Bulma] sobre apt-get
… …

Así, para que el fetchmail redirija los correos como toca, siendo el caso que el ISP usa
una cabecera diferente (ya que si no usa ninguna no hay nada que hacer), se le ha de
indicar al fetchmail cual es el envelope que tiene que buscar.
Por ejemplo, en mi caso, se le ha de decir al fetchmail que ahora el envelope se denomina
“original”. con esto el multidrop queda de la siguiente manera:

pinganilla:~# cat /etc/fetchmailrc
# Principi del fitxer
set no bouncemail
set postmaster bounced

# revisaremos correo cada 2 minutos
set daemon 120

poll mail.eclipse.cony.uk envelope “X-Original-To” localdomains
hitconysultants.eclupse.cony.uk localdomain:
user “[email protected]” with
pass “Que te pensaves” to *
here

# Fi del fitxer

Notad el comando envelope “X-Original-To” que es el que afecta la forma en que
parsea las cabeceras.
Notad también que he puesto set no bouncemail i set postmaster bounced
Esto, junto con el hecho de que he creado un usuario llamado bounced, hace que fetchmail
no rechace los mensajes si no encuentra un destinatario, sino que los envie al postmaster
que está definido como el usuario bounced, así si alguna cosa se escapa
(probablemente los mensajes que tengan más de un destinatario) no se perderán, irán
a parar a la cuenta del señor bounced. Además, de esta manera, los que llegen a bounced,
se que son los rechazados i los puedo estudiar para ver si les puedo aplicar algún otro truco,
si son importantes, claro.

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1902 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.