Titulo: How-To del FetchMail + SendMail para Linux

Autor: Roberto Suárez Soto

Fecha: 1-1-98


Este "COMO" cubre la configuración y manejo básicos de sendmail y

fetchmail. Su objetivo es hacer posible el recoger y enviar correo de

una manera cómoda ("off-line", es decir, mientras no estamos conecta­

dos a Internet) y lo más transparente posible (se puede automatizar

todo sin problemas). Se cubren aspectos ya tocados en el "Infovía-

HOWTO", pero ampliándolos en lo tocante a los dos programas que dan

título al COMO. También se explica uno de los usos más frecuentes del

programa procmail, que es el de organizar el correo entrante en difer­

entes carpetas, especialmente útil cuando se está suscrito a alguna

lista de correo.

______________________________________________________________________

Table of Contents:

1. Notas Previas

1.1. Agradecimientos

1.2. Aspectos legales ("Disclaimer" y "Copyright")

1.3. Lo que necesitaréis ("Ingredientes" :-))

1.4. Bugs

2. Modificando el /etc/sendmail.cf

2.1. Indicando el servidor SMTP

2.2. Enmascarando el usuario

2.3. Cambiando las "rules" para que el Pine no dé problemas

2.4. Enmascarando el dominio

2.5. Reiniciando el sendmail

3. Configuración de fetchmail y procmail

3.1. Preparando fetchmail: el archivo fetchmailrc

3.2. Llamando a fetchmail en la línea de comandos

3.3. Configurando procmail para listas de correo (OPCIONAL)

4. Organizando todo esto en scripts

5. Referencias

______________________________________________________________________

1. Notas Previas

1.1. Agradecimientos

En este "COMO" debería haber un "co-autor": Fernando Sánchez, que fue

el que me dijo cómo montar sendmail, y además me dio numerosos

consejos para montar fetchmail y procmail (además, ha sido uno de los

"betatesters"/supervisores de este COMO :-)).

Así que si algo falla, echadle a él la culpa :-P ;-) (que no, que es

broma

1.2. Aspectos legales ("Disclaimer" y "Copyright")

Estoy seguro de que habéis visto muchos documentos con este apartado,

así que ya os lo sabréis de memoria :-)

Lo de siempre: que este documento se distribuye SIN GARANTIA DE

NINGUNA CLASE. A mí me ha funcionado, y no creo ser ningún ente de

infinita sabiduría o superior intelecto :-)

Copyright ... pues el típico, que hagáis lo que os dé la gana con el

documento, pero si lo modificáis o algo así, sería bonito que dijérais

de quién es el original :-)

1.3. Lo que necesitaréis ("Ingredientes" :-))

Lo primero, un ordenador con Linux instalado %-) (es el chiste típico,

lo siento O:-)).

Además, aseguraos de que tenéis los siguientes programas:

· sendmail : es un estándar en todas las distribuciones, lo más

probable es que lo tengáis ya instalado y medianamente configurado.

Si tenéis alguna duda, sólo tenéis que ver si existe el fichero

/etc/sendmail.cf. Si existe, es que tenéis instalado sendmail. Si

no ... mala suerte y un vistazo al "sendmail-mini-COMO" :-)

· fetchmail : Debian y RedHat lo traen "de serie", y Slackware

también, pero desde la 3.3. Si no lo tenéis, podéis conseguirlo de

su página oficial, http://www.ccil.org/~esr/fetchmail o del espejo

de SunSite en RedIris,

ftp://ftp.rediris.es/software/linux/distributions. Buscad vuestra

distribución, coged la última versión que encontréis de fetchmail e

instaladla. Si usáis RedHat o Debian, la instalación se reduce a

hacer un "rpm -i" (RedHat) o un "dpkg -i" (Debian) del paquete. Si

usáis SlackWare, y cogéis el paquete .tgz ... pues bueno, supongo

que tendrá algún README que explica cómo se instala O:-)

· procmail : también es estándar en todas las distribuciones. Si

queréis bajar la última (o una versión más o menos reciente, porque

el espejo de RedIris no es todo lo actualizado que se desearía), lo

podéis encontrar en RedIris, en el mismo sitio que fetchmail.

1.4. Bugs

Sí, hijos míos, este COMO tiene un "bug" (uno que yo sepa O:-)). Lo

siento, no soy infalible, como el Papa :-)

Este bug no es demasiado serio: simplemente, consiste en que,

modificando el sendmail.cf tal y como se os indica aquí, el correo

enviado por el usuario que uséis será enmascarado ... incluso si el

destinatario sea otro usuario de la máquina local. Es decir, si yo con

mi usuario "robe", y habiendo enmascarado la dirección de salida como

"rss-trgn@usa.net", le mando un mail al root de mi máquina, la

dirección de retorno de este mail no aparecerá como

"robe@murphy.darkland.es" (mi usuario y el dominio de mi máquina),

sino como "rss-trgn@usa.net". Por supuesto, cuando intentemos

responder a este mensaje, la respuesta irá al buzón de correo de

Internet, y desde ahí tendremos que recogerlo para leerlo.

Sin embargo, como en la mayoría de los casos no nos interesará

demasiado mandarnos mails a nosotros mismos, no creo que haya ningún

problema :-)

2. Modificando el /etc/sendmail.cf

Para que sendmail funcione correctamente, necesitaremos hacer algunas

modificaciones a su fichero de configuración, el /etc/sendmail.cf (de

ahora en adelante, simplemente "sendmail.cf"). Sin embargo, "don't

panic!" :-) Son modificaciones sencillas, con las que no deberíais

tener ningún problema. Pero, por si acaso, haced una copia de

seguridad del sendmail.cf, que nunca se sabe :-)

2.1. Indicando el servidor SMTP

Esta parte ya está cubierta en el "Infovía-HOWTO", pero he decidido

ponerla también aquí para que no tengáis que andar mirando en varios

docs a la vez :-)

Esta modificación que vamos a hacer vale para que todo el correo que

escribáis "off-line" se mande a un servidor SMTP, que se encargará de

distribuir el correo a donde corresponda. En principio, no es

necesario: si no existe esta entrada, sendmail buscará él mismo las

direcciones a las que habéis mandado el correo. Pero esto puede

llevarle tiempo, así que lo mejor es mandar todo a un servidor y

dejarle a éste hacer todo el trabajo :-)

Si habéis utilizado el "sendmail-mini-COMO" para compilar vuestro

sendmail.cf, esta línea ya la tendréis creada, y podéis saltaros esta

sección :-)

Tenéis que buscar unas líneas en el sendmail.cf que pongan los

siguiente:

# "Smart" relay host (may be null)

DS

A lo mejor no están, pero no os preocupéis. Sólo tenéis que añadirlas.

Yo las tengo al principio de la sección "local info", después de unas

líneas en las que pone lo de "my official domain name". Supongo que

con que la pongáis más o menos por ahí llegará :-)

La línea que empieza por '#' es un comentario, no hace falta que la

pongáis. Sólo tenéis que preocuparos de la siguiente línea, la que

pone únicamente "DS". A continuación de estas letras debéis poner

vuestro servidor SMTP. En mi caso, lo tengo así:

# "Smart" relay host (may be null)

DSsmtp:smtp.mx3.redestb.es

Y ya está. Asegúrate de tener una única entrada como esta (una única

línea que empiece por "DS") en todo el sendmail.cf, porque si hay dos

entradas definiendo un servidor de éstos, no sé qué podría pasar :-)

2.2. Enmascarando el usuario

A lo largo del COMO, emplearé como ejemplo mi propia dirección de

correo,

rss-trgn@usa.net . En esta dirección sabéis que hay dos campos:

Usuario: es el campo que va antes de la arroba, que en mi caso es rss-

trgn.

Dominio: es el campo que va detrás de la arroba (en mi caso, usa.net),

y que corresponde al dominio del servidor de correo que utilicéis.

En el "Infovía-COMO" se os sugiere que creéis en vuestra máquina un

usuario como el que tengáis en la dirección de correo. Esto no hace

falta si enmascaramos el usuario, o sea, le decimos al sistema de

correo que en los mensajes que envíe nuestro usuario "habitual" (en mi

caso, "robe") cambie el campo del usuario local por uno que nosotros

le diremos, que será el del usuario remoto (el que figura en la

dirección, en mi caso "rss-trgn").

Para esto, cread un fichero /etc/userdb con vuestro editor preferido,

y en él pondréis las siguientes líneas:

local:mailname remoto

remoto:maildrop local

Donde tenéis que cambiar lo de "local" por vuestro usuario en la

máquina local, y "remoto" por vuestro usuario en la máquina remota. Mi

/etc/userdb está así:

robe:mailname rss-trgn

rss-trgn:maildrop robe

Ahora, hay que convertir ese fichero de texto en un fichero db, que es

el que va a utilizar el sendmail. Para eso, sólo tenéis que hacer:

makemap btree /etc/userdb.db < /etc/userdb

Para hacer esto, necesitáis una versión moderna del makemap (la de la

SlackWare 3.2, por ejemplo, NO VALE), o el makemap que viene en el

paquete del propio sendmail. En caso de duda, intentad conseguir la

última versión de Internet (o de una BBS, o de un amigo, o de un CD, o

... :-)). Yo no he tenido problemas con el makemap que venía en la

RedHat 4.1, ni con el que viene con la Debian 1.3.1, por lo que si

tenéis una de estas distribuciones (o una más moderna) debería

funcionar.

Muy bien, y ahora hay que decirle al sendmail que use este fichero.

Para eso, debéis añadir una línea al sendmail.cf, tal que así:

# Fichero userdb para reescribir el usuario

Kuserdb btree -o /etc/userdb.db

La línea que empieza por '#' es un comentario, así que la podéis

quitar si queréis. Pero bueno, dejad algo para saber qué es lo que

hace esa línea, por si después queréis cambiarlo y no os acordáis de

dónde era :-)

El sitio donde pongáis esta línea no es demasiado significativo. Yo la

tengo después de otras cuatro opciones que empiezan también por K,

otras que también tratan sobre tablas dbm. Buscad directamente "dbm"

en el editor y las encontraréis.

2.3. Cambiando las "rules" para que el Pine no dé problemas

El Pine tiene un problema con el uso de un fichero como el que hemos

creado. Si quieres saber cuál es exactamente, vete a la FAQ del

sendmail y mira en la pregunta Q3.6 :-) Se debe a la manera que tiene

el Pine de reescribir las cabeceras de los mensajes. Pero bueno, lo

importante aquí es saber cómo arreglarlo.

(Si no usas el Pine ... pues no debería hacerte falta cambiar nada.

Pero ya que estás aquí, aprovecha y cámbialo ... algún día, quizás

quieras utilizar el Pine, y a lo mejor no te acuerdas de que había que

hacer esta modificación :-))

Para esto, vamos a añadir un "parche" a las "rules", que son la parte

con multitud de signos '$' y que no hay quien entienda %-) que aparece

al final del sendmail.cf. Añade el fragmento siguiente a tu

sendmail.cf, justo después del comentario (enorme, seguro que lo ves

:-)) que pone "Rewriting rules":

#LOCAL_RULE_1

########################################################

### Local Ruleset 1, rewrite sender header & envelope ##

########################################################

#Thanks to Bjart Kvarme <bjart.kvarme@usit.uio.no>

S1

R$- $1 < @ $j . > user=>user@localhost

R$- < @ $=w . > $* $: $1 < @ $2 . > $3 ?? $1 user@localhost ?

R$+ ?? $+ $: $1 ?? $(userdb $2 :mailname $: @ $)

R$+ ?? @ $@ $1 Not found

R$+ ?? $+ $>3 $2 Found, rewrite

MUY IMPORTANTE: los espacios que ves entre cada columna DEBEN SER

TABULADOS. Es decir, que si coges este fragmento de arriba con el gpm

y lo pegas en otra consola (que es lo más lógico y fácil para estas

cosas :-)), tienes que editarlo después y sustituir el espacio entre

columnas por tabulados.

Más fácil todavía: un ejemplo de cómo sería una de estas líneas:

R$- (3 tabulados) $1 < @ $j . > (3 tabulados) user=>user@localhost

Creo que se entiende, ¿no? :-) Una pista más: la tercera línea que

comienza por 'R$' son sólo dos columnas, no intentes convertirla en

tres :-)

Si ves que al cargar el sendmail te da errores extraños, muy

probablemente sea de que te has dejado algún espacio donde no debías,

o que al cortar y pegar alguna de las líneas ha quedado mal. Asegúrate

de que todo queda tal y como aparece aquí.

2.4. Enmascarando el dominio

Esta es la parte más fácil :-) Sólo tienes que buscar unas líneas en

el sendmail.cf que ponen:

# who I masquerade as (null for no masquerading) (see also $=M)

DM

Después de "DM", tienes que poner el dominio de tu servidor de correo.

En mi caso, sería "usa.net":

# who I masquerade as (null for no masquerading) (see also $=M)

DMusa.net

Y ya está. Hemos acabado todo lo relacionado con modificar el

sendmail.cf. ¿No ha dolido, verdad? :-) Pues sigamos.

2.5. Reiniciando el sendmail

Para que los cambios que hemos hecho surtan efecto, hemos de reiniciar

el sendmail. En Debian 1.3.1, que es lo que usa un menda, basta con

hacer (siendo root):

/etc/init.d/sendmail reload

Pero no os asustéis si no tenéis Debian: lo que hace este script es

perfectamente factible en cualquier Linux/Unix, ya que sólo se trata

de una señal que le mandáis al proceso con "kill", de este modo:

killall -1 sendmail

A lo mejor tenéis que cambiar otra cosa, pero ahora en el fichero de

arranque de sendmail. Dependiendo de la distribución que uséis, estará

en el directorio /etc/init.d (Debian), o /etc/rc.d (RedHat y

SlackWare, creo). El nombre no lo sé, pero seguro que contiene la

palabra mágica "sendmail" :-) Si tenéis alguna otra distribución,

seguramente siga el mismo patrón que cualquiera de estas tres.

Para encontrar esta línea, también podéis recurrir a "find" y "grep":

find /etc -type f | xargs grep sendmail

Que os mostrará todos los ficheros que contengan en su nombre la

palabra "sendmail".

En este fichero, aseguraos de que la llamada a sendmail contiene el

parámetro "-bd". A lo mejor tiene a continuación otro parámetro, de la

forma "-q..." (por ejemplo, "-q10m", "-q1h30m", o algo parecido).

Quitad éste último, y dejad sólo el primero. Si dejásemos este último

parámetro, sendmail intentaría procesar la cola de correo cierto

tiempo (el indicado en el parámetro "-q": "-q10m" serían 10 minutos,

"-q1h30m" sería 1 hora y 30 minutos, etc.). Dejando sólo el primer

parámetro, sendmail esperará a nuestra señal para procesar y enviar el

correo.

Cada vez que queráis mandar el correo, tenéis que hacer:

/usr/bin/sendmail -q

Aseguraos de que ponéis la ruta correcta a sendmail, porque sino os

econtraréis con un "sendmail: command not found" bastante desagradable

:-)

3. Configuración de fetchmail y procmail

Fetchmail y procmail son los programas que nos van a servir para

administrar el correo de entrada. En principio, sólo es necesario

fetchmail, que es el que se encarga de recoger el correo del buzón y

enviarlo al usuario que nosotros le especifiquemos. Sin embargo, he

querido dar también algunas nociones del uso de procmail, porque nos

servirá, por ejemplo, para guardar los mensajes de alguna lista de

correo a la que estemos suscritos en otra carpeta diferente a "inbox"

(la carpeta en la que se almacenan por defecto todos los mensajes

recibidos), y multitud de posibilidades más.

3.1. Preparando fetchmail: el archivo fetchmailrc

Fetchmail puede ser utilizado sin archivo de configuración,

simplemente con los parámetros que le demos en la línea de comandos.

Esto puede ser una opción si sólo tenemos que recoger el correo de un

buzón, sin demasiadas zarandajas. Pero lo más útil (y comprensible) es

que indiquemos las opciones de fetchmail en su fichero de

configuración, un fichero llamado

.fetchmailrc . Tiene que estar en el directorio de trabajo del

usuario que vaya a usar fetchmail, así que en mi caso (usuario "robe")

sería

/home/robe/.fetchmailrc .

Creo que la mejor manera de entenderlo es ver un ejemplo. Aquí os

pongo mi fetchmailrc, comentado, y con los passwords cambiados, por

supuesto ;-).

#

# .fetchmailrc

#

defaults # Comandos comunes a todos los servidores:

fetchall # - Coger todos los mensajes en el buzón

flush # - Borrar todos los mensajes ya recogidos

# en anteriores llamadas al servidor

poll pop.netaddress.com # Indica el primer servidor al que llamar

user rss-trgn # Nombre de usuario (cuenta) en este servidor

pass password1 # Password para esta cuenta de correo

to robe # Usuario local al que enviar el correo

poll pop3.mx3.redestb.es # El segundo servidor al que llamar

user rbss # Usuario (cuenta) en este servidor

pass password2 # Password para esta cuenta de correo

to robe # Usuario local al que enviar el correo

Esta es una configuración bastante sencilla. Si le echáis un vistazo a

la página del manual de fetchmail, veréis que hay algunas opciones

más.

Este fichero tiene que tener permisos de sólo lectura y escritura para

vuestro usuario (es decir, hay que hacerle un "chmod 600" siendo el

usuario que va a usar fetchmail), o fetchmail se negará a funcionar.

3.2. Llamando a fetchmail en la línea de comandos

Habiendo creado un .fetchmailrc como el anterior, para recoger el

correo sólo tenéis que llamar a fetchmail, sin que haga falta ninguna

opción más:

fetchmail

Pero claro ... hay opciones muy interesantes que merece la pena

utilizar :-) Os muestro la línea de comandos con que llamo yo a

fetchmail:

fetchmail -d 600 --kill -v -L /home/robe/etc/fetchmail.log

Es un poco más larga que la anterior :-)

Esto es lo que hacen esos parámetros:

· -d 600 : hace que fetchmail se quede residente (modo "daemon", de

ahí la "d"), y que recoja el correo cada 600 segundos (10 minutos).

Para matar el proceso, podéis optar por el método tradicional

("ps"+"kill") o, mucho más fácil, hacer "fetchmail --quit" , que

se encarga de buscar el PID del fetchmail y matarlo de una forma

"civilizada" :-)

· --kill : hace que cada mensaje que se recoja sea borrado al

momento. Es algo parecido a lo que hace el comando "flush" en el

fetchmailrc, pero esta opción hace que los mensajes sean borrados

justo después de recogerlos. Tener esta opción y la de "flush" en

el fetchmailrc es algo redundante ... pero es que yo soy algo

paranoico %-)

· -v : "verbose", o sea, que vaya diciendo lo que está haciendo en

cada momento.

· -L /home/robe/etc/fetchmail.log : "-L" indica que la salida de

los mensajes que pudiera generar (los creados por "-v",

concretamente) se pasen a un archivo de log.

"/home/robe/etc/fetchmail.log" es el fichero al que quiero que se

pasen estos mensajes.

Para comprobar qué es lo que va a hacer fetchmail con los

parámetros dados y los que se encuentran en el fichero de

configuración, vamos a añadir otra opción a la llamada en la línea

de comandos: "-V" (o también "--version"). De esta forma, no se

realizará ninguna llamada; simplemente, se mostrará en pantalla

cómo ha interpretado fetchmail la configuración actual. En resumen,

algo que deberéis hacer para evitaros sorpresas inesperadas :-)

3.3. Configurando procmail para listas de correo (OPCIONAL)

Como he dicho antes, procmail no hace falta para recoger el correo.

Configurando sendmail y fetchmail tal y como se ha dicho hasta aquí,

ya está todo. A pesar de todo, creo que no hace daño a nadie aprender

un poco cómo se maneja :-) Sólo trataré un tema, que es el de preparar

procmail para que almacene en diferentes carpetas las listas de correo

a las que podamos estar suscritos. Por supuesto, ésta no es más que

una mínima utilización de este programa, que es capaz de hacer muchas

más cosas ... pero a mí me llega :-) Si queréis saber más ... pues,

como siempre, "man procmail" :-)

Lo primero que tenemos que hacer es crear un fichero .forward (en

directorio de trabajo del usuario que vayáis a usar, evidentemente).

En él se llamará automáticamente a procmail cuando nos llegue correo.

Os pongo aquí mi .forward:

"|IFS=' ' && p=/usr/bin/procmail && test -f $p && exec $p -Yf- || exit 75 #robe"

Atención: sólo una línea. No sé cómo se verá esto en el COMO

resultante (por eso de pasarlo a HTML o TXT), pero tened en cuenta

eso. Y otra cosa: las comillas (") al principio y al final de la línea

SON NECESARIAS.

Y otra cosa más: verificad que la ruta a procmail sea la correcta,

porque sino vuestro correo desaparecerá sin dar ningún aviso :-) Para

saber cuál es la ruta adecuada, no tenéis más que hacer:

which procmail

El campo del que tenéis que preocuparos ahora es del que viene después

de la almohadilla (#): aquí tenéis que poner vuestro usuario local

(como véis, yo tengo puesto "#robe", ya que "robe" es el usuario que

utilizo en mi máquina).

Y ahora, el fichero de configuración del procmail en sí: el

.procmailrc. Su sintaxis es algo complicada, porque usa "regular

expressions" (expresiones regulares, como las utilizadas con "egrep",

"find", y multitud de programas más). Pero para un uso sencillo, como

el que le daremos nosotros, se entiende bastante bien.

He aquí mi .procmailrc:

PATH=/bin:/usr/bin:/usr/bin

MAILDIR=$HOME/mail # El directorio donde están almacenadas

# vuestras carpetas de correo; yo lo tengo

# configurado para el Pine, otros programas

# usan $HOME/Mail o algún otro directorio.

:0:

* ^To.*linux-admin # Busca "linux-admin" en el campo "To"

linux-admin # Carpeta destino

:0:

* ^Cc.*linux-admin # Busca "linux-admin" en el campo "Cc"

linux-admin # Carpeta destino

Como digo en el fichero, la variable MAILDIR indica dónde se almacenan

las carpetas de correo. Es MUY IMPORTANTE que sea correcto, o sino

perderéis todo el correo que proceséis con este filtro.

Creo que se entienden bastante bien los campos: uno busca en el "To"

(el destinatario) y otro en el "Cc" ("Carbon Copy", copias del

mensaje). Los mensajes que encuentra con el criterio dado (con una

cadena que contenga "linux-admin", en este caso) los guarda en la

carpeta que se indica debajo (en este caso, "linux-admin" también

:-)). Si la carpeta destino no existe, es creada automáticamente.

De esta manera, el correo que llegue será filtrado por procmail, y así

tendréis el correo normal en vuestro "inbox" y el correo de las listas

de correo a las que estéis suscritos en carpetas aparte.

Pero ... muchas veces, por cualquier razón, podemos encontrarnos con

que no hemos filtrado correctamente el correo entrante, y como

resultado tenemos 135 mensajes de las listas "linux-is-amazing" y

"linux-it-flies" (por supuesto, son ejemplos imaginarios ;-)) en el

"inbox". ¿Qué hacer? Moverlos uno a uno puede llevarnos bastante

tiempo.

Bien, pues para estas ocasiones, podemos usar el siguiente script.

Este script utiliza la información en .procmailrc para coger el correo

del "inbox" y filtrarlo, clasificando los mensajes y colocándolos en

sus carpetas correspondientes:

#!/bin/sh

# postmail (para filtrar el correo del inbox)

ORGMAIL=/var/spool/mail/$LOGNAME

if cd $HOME &&

test -s $ORGMAIL &&

lockfile -r0 -l3600 .newmail.lock 2>/dev/null

then

trap "rm -f .newmail.lock" 1 2 3 15

umask 077

lockfile -l3600 -ml

cat $ORGMAIL >>.newmail &&

cat /dev/null >$ORGMAIL

lockfile -mu

formail -s procmail <.newmail &&

rm -f .newmail

rm -f .newmail.lock

fi

exit 0

Un detalle más: a partir de ahora, sólo se os informará de que habéis

recibido nuevo correo si tenéis nuevos mensajes en el "inbox", y no

cuando recibáis correo en alguna de las listas. En este último caso,

sólo se os informará de que tenéis correo en el buzón local.

4. Organizando todo esto en scripts

Aquí os pongo los scripts que tengo yo para automatizar todo lo del

correo.

Fichero para la conexión a Internet:

#!/bin/sh

#

# inet_on

#

# ------- Conexión a Internet --------

# Lanzo el pppd:

/usr/sbin/pppd

# Miro en los logs cómo va la conexión (con Infovía, nunca se sabe :-))

(/usr/bin/tail -f /var/log/messages | egrep "pppd||chat")&

# ------- Coger/Enviar el correo -------

# Normalmente tardo entre 25 y 35 segundos en hacer la conexión, así que ...

sleep 35

killall -v -9 tail # Mato el proceso del tail anterior

/usr/sbin/sendmail -q # Mando el correo en la cola

# Llamo a fetchmail:

fetchmail -d 600 -v --kill -L /home/robe/etc/fetchmail.log

# Voy viendo el log de lo que hace fetchmail en la consola 8

(tail -f /home/robe/etc/fetchmail.log >/dev/tty8) &

Fichero para la desconexión:

#!/bin/sh

#

# inet_off

#

# Mato el proceso de fetchmail:

echo "Quitando demonio fetchmail de memoria ..."

fetchmail -v --quit

killall -v -9 tail # Mato el tail que llevaba el log de fetchmail

# Por si he escrito algún mensaje mientras estaba "on-line" %-)

echo "Mandando el correo pendiente ..."

/usr/sbin/sendmail -q

# Corto la conexión:

echo "Cerrando enlace ppp ..."

poff

El comando "poff" SOLO LO TRAE DEBIAN. En Slackware, debes usar "ppp-

off". En RedHat ... no sé, yo cuando usaba RH copié el "ppp-off" de

SlackWare :-) Seguramente, tengas que matar al proceso "por las

bravas":

killall -v -9 pppd

Lo de "-v" es, como siempre, para el modo "verbose" :-)

5. Referencias

· FAQ de sendmail: http://www.his.com/~brad/sendmail/index.html

· Sendmail-mini-COMO, por Ignacio Llona :

http://www.infor.es/LuCAS/Otros/html/sendmail-minicomo/

· Infovía-HOWTO, por Francisco José Montilla:

http://www.infor.es/LuCAS/COMO-INSFLUG/html/Infovia-Howto/Infovia-

Howto.html

· Las páginas man de sendmail, fetchmail y procmail :-)