Animail

Tabla de Contenidos

1. Opciones de linea de comandos
2. El sistema de filtrado
3. Referencia de configuración del animailrc
1. Opciones de servidor
2. Opciones globales
4. Trucos

1. Opciones de linea de comandos

--help or -H

Muestra una pequeña ayuda

-o [arrival | small | bug] or --download-order=[arrival | small | big]

Esta opción especifica el orden en el que serán descargados los mensajes del servidor:

-f [archivo] or --mbox-file=[archivo]

Fichero con formato mbox en el que el correo debe almacenarse. Utilicese principalmente para pruebas

-v or --verbose

Modo explicativo

-s [size] or --max-size=[size]

Tamaño máximo en bytes que podrá tener un mensaje antes de ser descargado

-n [max] or --max-to-download=[max]

Máximo número de mensajes a descargar

-S or --deliver-smtp

Reenviar los mensajes al SMTP local

-B or --syslog-output

Escribir toda la salida del programa al syslog

-t or --quiet

Modo silencioso

-F or --only-filter

No descargar, sólo filtrar

-l or --no-summary

No mostrar el resumen al final de la operación

-C or --check

Comprueba si hay correo nuevo y escribe cuandos correos tenemos en cada buzón local, pero no lo descarga. La salida es muy sencilla de analizar por un programa, además Animail devolverá 1 si hay correo nuevo y 0 en el caso contrario

-M or --fetchmail

Igual que -C pero con una salida compatible con la de fetchmail

-O or --only-from=

Sólo descargar mensajes de la lista de servidores (separados por comas) dada como parámetro. Los servidores deben especificarse por su alias NO por su dirección (así que es necesario configurar el animailrc para especificar 'Alias:' a los servidores que quiera poder utilizar con este parámetro).


2. El sistema de filtrado

El sistema de filtrado se basa en tres elementos:
  1. El fichero de aceptados
  2. El fichero de denegados o fichero de filtros
  3. Los mensajes postergados
El fichero de aceptados es (al igual que el fichero de denegados) un fichero en el que cada linea es una expresión regular (man regexp). Si la cabecera del mensaje que se está descargando actúalmente concuerda con una de esas expresiones regulares, el mensaje se acepta automáticamente, sin tener que pasar por el fichero de filtros. Estas expresiones regulares normalmente van a ser las que permitirán que los mensajes de amigos, conocidos, compañeros de trabajo, listas de correo, etc pasen siempre directametne a nuestro sistema de correo.

La ruta al fichero de aceptados se especifica en el animailrc con:
FicheroAceptados: /ruta/a/ficheroaceptados

Simplemente el hecho de incluir el comando anterior en el animailrc activará el uso del fichero.

El fichero de denegados tiene el mismo formato que el de aceptados, pero en lugar de hacer que los mensajes que concuerden con una de sus expresiones regulares sean automáticamente aceptados tiene el efecto contrario: Con borrados del servidor sin llegar a descargar su cuerpo. Las expresiones regulares que escribamos en este archivo normalmente concordarán con las direcciones de correo de los spammers (gente que envía correo basura) que conozcamos. Por supuesto, utilizando la síntaxis de expresiones regulares podemos concordar cualquier cosa contenida en la cabecera, no sólo la dirección del 'From' sino también cosas como por ejemplo el número de personas en el campo 'Cc:' y casi cualquier cosa en la que podamos pensar (las expresiones regulares son extremadamente poderosas).

La ruta al fichero de denegados se especifica en el animailrc con:
FicheroFiltros: /ruta/a/ficherofiltros

Simplemente incluír el comando anterior en el animailrc activará su uso.

De modo que dependiendo de si estamos usando uno, los dos o ninguno de los ficheros anteriores podemos tener un sistema de filtrado u otro. Si sólo definimos el fichero de denagados (Animail sólo permitía esto hasta la versión 1.1.28) estaremos utilizando un esquema de 'lista negra'. Este esquema funcionaba bastante bien en 1998 cuando Animail empezó a ser desarrollado porque no había tantos spammers y la mayoría eran repetitivos. Desgraciadamente hoy en día este esquema de filtrado no basta porque hay muchos spammers que cambian frecuentemente de dirección. Una solución a esto podría ser intentar suerte con un conjunto de expresiones regulares muy genéricas para filtrar subfrases como 'mucho dinero' o 'viva para siempre' en el asunto, pero desgraciadamente esto puede tener como consecuencia que podamos perder algún email legítimo (por ejemplo, un amigo podría mandarnos un email con el asunto "He encontrado un trabajo para ti que te podría hacer ganar mucho dinero".

Intentando encontrar una solución para esto Animail (desde la versión 1.1.28 y superioreS) permite otros dos sistemas de filtrado (inspirados por la idea que el programa TMDA utiliza, pero aplicada a un nivel distinto). TMDA se distribuye con licencia BSD pero Animail no comparte ni una línea de código con el (o puede que sí, no me he mirado su código :). Estos dos esquemas de filtrado posibles son:


1. Denegar cualquier cosa que no esté en el fichero de aceptados.
2. Poner los mensajes que no estén en el fichero de aceptados ni en el de denegados en estado 'postergado' y envíar un mensaje educado de vuelta requiriendo una confirmación.

Esta opción es muy agresiva, pero puede resultar interesante para personas que sólo quieren recibir email de unas fuentes limitadas (como listas de correo y algunos amigos o compañeros de trabajo). Para utilizar esta opción además de haber especificado la ruta al fichero de aceptados necesitamos añadir a la sección global del animailrc:

NoEnFicheroAceptados: Borrar

La segunda opción, indudáblemente más útil para la mayoría de la gente, consiste en que cada vez que recibamos un email de alguien que no esté en el fichero de aceptados ni en el de denegados ese mensaje se pone 'a la espera' en el directorio 'animailDelayed' bajo el directorio .animail de nuestro directorio de usuario, y se envia una respuesta educada a la dirección de origen especificando porque el mensaje aún no ha sido entregado (medidas anti-spam) y pidiendo una respuesta a esa mensaje que en el caso de producirse hará que la dirección de origen sea añadida automáticamente al fichero de aceptados y todos los emails provenientes de la misma sean entregados al sistema de correo (también puede configurarse Animail para que las direcciones que se confirman no seán automáticamente añadidas al fichero de aceptados, consulte la referencia de opciones globales.)

Es importante destacar que si va vamos a utilizar este sistema de filtrado, tenemos que añadir nosotros mismos al fichero de aceptados las direcciones de las distintas listas de correo a las que estemos subscritos, así como cualquier otra expresión regular que concuerde con mensajes automáticamente generados que no puedan responder a las confirmaciones (como "MAILER-DAEMON", "subscri", etc).

En cualquier caso, cuando se muestra el resumen de la operación podemos ver que direcciones de email se han puesto a la espera y mirando durante algunos días esas direcciones podremos saber que expresiones regulares debemos poner en el fichero de aceptados (también podemos leer manualmente los mensajes puestos a la espera abriendo los ficheros mbox bajo el directorio .animail/animailDelayed con nuestro lector de correo favorito):

3. Referencia de configuracióm del animailrc


Nota:
Este fichero debe existir en cada directorio de usuario de cada usuario de Animail bajo el directorio oculto .animail/ puesto que no hay (aún) ningún fichero de configuración para todo el sistema.

Este archivo está compuesto de uno o más grupos de servidor, y opcionalmente, de un grupo global. Cada grupo de servidor define las opciones para un servidor o cuenta de servidor determinado y las opciones globales definen opciones que se aplicarán a todos los servidores.

Los grupos de servidores se delimitan entre la etiqueta iniciar <Servidor> y la etiqueta final </Servidor>, y el grupo global por <Global> y </Global>, de modo que la estructura general para un archivo animailrc podría ser:

<Servidor>

[Opciones de servidor]

</Servidor>


<Servidor>

[Opciones de otro servidor o cuenta]

</Servidor>

... [Más grupos de servidor si necesita descargar correo de más servidores o cuentas]

<Global>

[Opciones globales]

</Global>

Los comandos de cada grupo deben separarse de sus parámetro por un carácter 'dos puntos' (:). Los nombres de todas las opciones y sus parámetros (incluyendo los de las opciones booleanas, es decir, los que pueden tener un parámetro si/no) son indiferentes a mayúsculas y minúsculas.


3.1 Opciones de <Servidor> 

1. Direccion:
Parámetro: Cadena o dirección IP en notación de puntos
Valor por defecto: localhost
Dirección de internet del servidor de correo entrante a utilizar.

2. Protocolo:
Parámetro: Cadena de protocolo (POP3, IMAP4, APOP)
Valor por defecto: POP3

Protocolo a utilizar. Los protocolos actúalmente soportados son POP3, APOP e IMAP4. También están soportadas sus variantes SSL (ver la siguiente opción).

3. SSL:
Parámetro: Booleano (si/no)
Valor por defecto: no

Esta opción indica que se deben utilizar sockets SSL para la comunicación con el servidor entrante, si el servidor soporta esta opción. 

4. Puerto:
Parámetro: Numérico
Valor por defecto: 110 para POP3, 995 para POP3+SSL, 143 para IMAP4
Puerto a utilizar con el servidor de correo entrante.

5. NombreUsuario:
Parámetro: Cadena
Valor por defecto: Ninguno
Nombre de usuario a utilizar para la autentificación de la cuenta de correo con el servidor de correo.

6. Clave:
Parámetro: Cadena
Valor por defecto: Ninguno
Clave a utilizar para la autentificación de la cuenta de correo con el servidor de correo.

7. MantenerEnServidor:
Parámetro: Booleano (si/no)
Valor por defecto: no
Especifica si los mensajes deben ser borrados del servidor después de haber sido transferidos. Esto es útil para experimentar sin el riesgo de perder mensajes.

8. ReenviarA:
Parametro: Lista de cadenas separadas por comas de nombres de usuario o direcciones de email
Valor por defecto:  Usuario local ejecutando Animail

Esta opción le indica a Animail que reenvia todos los mensajes descargados al usuario o usuarios indicados, o a la dirección de correo o direcciones de correo indicadas. Si esta opción no está activada los mensajes se dirigiran al usuario que está ejecutando Animail. El parámetro puede ser una dirección o una lista de direcciones separadas por comas.

Nota: Dependiendo de la configuración del servidor de correo local es posible que tenga que especificarse el dominio (lo que va después de la @) incluso con usuarios locales (añadiendo un sufijo @localhost tras el nombre de usuario.)

9. Entrega_mbox:
Parámetro: Cadena (ruta a fichero)
Valor por defecto: $HOME/mbox

Esta opción sobreescribe el tipo de entrega configurado globalmente para este servidor. La mera presencia del comando activa la entrega de los mensajes descargados en este servidor a un fichero con formato mbox (el formato estándar de correo de Unix que puede ser leido por la mayoría de los clientes de correo convencionales) y el parámetro especifica la ruta a ese fichero mbox.

10. Entrega_maildir:
Parámetro: Cadena (ruta a directorio)
Valor por defecto: $HOME/Maildir/

Esta opción sobreescribe el tipo de entrega configurado globalmente para este servidor. La mera presencia del comando activa la entrega de los mensajes descargados en este servidor a un directorio con formato Maildir (como el utilizado por QMail o Pine) y el parámetro especifica la ruta a dicho directorio Maildir.
This option overrides the globally configured delivery option for this server. Activate delivery of this server messages to a Maildir mailbox (as used by QMail) and specifies the path to the Maildir directory.

11. Entrega_mtalocal:
Parámetro: Booleano (si/no)
Valor por defecto: si

Esta opción sobreescribe el tipo de entrega configurado globalmente para este servidor. La mera prencia del comando activa la entrega de los mensajes descargados en este servidor a un servidor de correo (MTA) local (localhost, puerto 25) utilizando el protocolo SMTP. Este es el modo de operación recomendado (y el utilizado por defecto).

12. Entrega_tuberia:
Parámetro: Cadena (comando)
Valor por defecto: /usr/sbin/sendmail -bm

Esta opción sobreescribe el tipo de entrega configurado globalmente para este servidor. La mera presencia del comando activa la entrega de los mensajes descargados en este servidor al comando ejecutable por la shell especificado como parámetro. Dicho comando en primer lugar debe poder aceptar mensajes con formato RFC822 por la entrada estándar y se le será añadida como parámetro la dirección del originador del correo, de modo que puede que sea necesario añadirle al comando algún parámetro para que acepte dicha dirección (por ejemplo el valor de esta opción si quisiéramos que Animail enviara todos los mensajes descargados a procmail para su post-procesador sería procmail [parámetros que deseemos] -f). El valor por defecto es /usr/bin/sendmail -bm.

3.2 <Global> options

1. MaxSize:
Parameter: Numeric (in bytes)
Default value: Unlimited
This command specifies the maximum size of a message to be downloaded. Those messages that won't be downloaded will be deleted on the server.

2. MaxNumber:
Parameter: Numeric (number of emails)
Default value: Unlimited

Limits the number of messages to download in a session. Those messages that won't be downloaded will be left on the server. If this option is omited there is no limit to the number of messages to download in a session.

3. Deliver_mbox:
Parameter: String (path to file)
Default value: $HOME/mbox
Activate delivery of messages to a Mbox-style mailbox (standar Unix format which can be readed with most conventional Unix mail clients), and specifies the path to the mbox file.
This option can be overriden for some servers specifiying different delivery options inside that servers options block.

4. Deliver_maildir:
Parameter: String (path to a directory)
Default value: $HOME/Maildir/
Activate delivery of messages to a Maildir mailbox (as used by QMail) and specifies the path to the Maildir directory.
This option can be overriden for some servers specifiying different delivery options inside that servers options block.

5. DownloadOrder:
Parameter: String (arrival, firsbig of firstsmall)
Default value: arrival
Specify the messages download order based on his size. It can have three parameters:


6. Deliver_localmta:

Parameter: Boolean (yes/no)
Default value: yes
Activate delivery of messages to a local MTA (localhost, port 25) using the SMTP protocol. This is the recommended (and default) way of operation.
This option can be overriden for some servers specifiying different delivery options inside that servers options block.

7. Deliver_pipe:
Parameter: String (command line)
Default value: /usr/sbin/sendmail -bm

Activate delivery of this server messages to the command specified with the parameter. The default parameter value is /usr/bin/sendmail -bm.
If this option is found with a value Animail will use the command specified to deliver downloaded messages instead of using the SMTP protocol or any of the other delivery methods (currently mbox and maildir). The parameter can be any command that accepts RFC822 messages on his standart input. The address of the destination of each email will be appended to the command before opening the pipe so if the command needs an special parameter to accept the destination address you need to pass it (for example, a line for procmail could be procmail [parámeters] -f).
This option can be overriden for some servers specifiying different delivery options inside that servers options block.

8. FicheroFiltros:
Parámetro: Cadena (ruta a fichero)
Valor por defecto: Ninguno

Usando esta opción se le indica a Animail que active el filtrado por expresiones regulares. Las expresiones regulares deben escribirse entonces en el fichero indicado en el parámetro, una expresión regular por cada línea.

9. AcceptFile:
Parameter: Path to file
Default value: none

Using this option you tell Animail to auto accept the messages matching the regular expressions in that file. That regular expressions must be written one in each line. (See Filtering.)

10. NotInAcceptFile:
Parameter: string ('none', 'reply' or 'delete')
Default value: 'none'

Specifies with action to do when a message that is not in the accept or in the filter file is received. If the parameter is 'delete' the file will be deleted from the server and if it is 'reply' a reply will be sent to the sender asking for a confirmation (see Filtering .)

11. ReplyAddress:
Parameter: string (email address)
Default value: nothing (it must be specified)

Address Animail will use as the Reply-To: of the auto messages to send.

12. ReplySubject:
Parameter: string (email subject)
Default value: 'Auto-generated message'

Subject to be used in the auto-replys to messages not in the accept or in the deny files. Animail will add the address specified in the ReplyAddress command to the end of that subject string so it can't get confused by others animails' messages.

13. ConfirmationSubject:
Parameter: string (email subject)
Default value: 'Ok, your messages have been delivered'

Subject to be used in the replys to email confirmations.

14. FileWithReply:
Parameter: string (path to file
Default value: None (in this case the default message will be the one that can be read in the file general.py of the Animail distribution)

File with the body of the message to be sent in the replies to emails not in the accept or in the filter file asking the user to a confirmation just replying to this message, so his email can be finally delivered and his address added to the accept file. If this command is not specified a polite message in several languages (currently english, spanish and italian, looking for help with more translations) will be used.

15. FileWithConfirmation:
Parameter: string (path to file)
Default value: None (in this case the default message will be the one that can be read in the file general.py of the Animail distribution)

File with the body of the message to be sent in the replies to users confirmations. If this command is not specified a polite message in several languages (currently english, spanish and italian, looking for help with more translations) will be used.

16. AutoAceptarConfirmaciones:
Parámetro: Booleano (si/no)
Valor por defecto: Si

Esta opción especifica que si tras una confirmación a una solicitud del Animail de confirmación el servidor debiera ser automáticamente añadido al fichero de aceptados.

17. OnlyOneReply:
Parameter: Boolean (yes/no)
Default value: No

Animail keeps a list of replied addresses in the file $HOME/.animail/repliedList.dat (DON'T EDIT THAT FILE!!). This option makes Animail only send a reply to the first message coming from an address not matching a regular expression in the accept or in the filter file (the operation summary will continue to show the postergated messages).

To prevent excesive startup time and memory usage, the list of replied messages has a maximum size of 500 entries (older entries will be removed when that sized is exceeded).

18. Timeout:
Parámetro: Numérico (tiempo en segundos)
Valor por defecto: Infinito

Limita cuantos segundos el programa puede esperar a recibir datos de un socket (conexión), es decir, cuanto tiempo puede estar congelada la conexión con el servidor. Después de que este timeout expire se cierra la conexión y Animail continua con el siguiente servidor.

19. Colorear:
Parámetro: Booleano (si/no)
Valor por defecto: si

Aplica unos bonitos colores ANSI a la salida por consola de Animail.

3. Random tips

3.1 Binding Animail filtering to a Mutt macro

Put this in your .muttrc:

macro index X |~/bin/macrospam\n
macro pager X |~/bin/macrospam\n

Now create a new file called macrospam in ~/bin with the text:

#!/bin/bash
grep 'From:' $s | grep -v 'Resent'>> ~/.animailfilters

and make it executable with:

chmod +x ~bin/macrospam

Now, pressing X in Mutt will add the currently selected mail to the Animail filterfile.




Versión 2.0

© 1998-2002 Juanjo Álvarez <juanjux@yahoo.es>