Titulo:
How-To del FetchMail + SendMail para LinuxAutor:
Roberto Suárez SotoFecha:
1-1-98Este "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 :-)