Resultados 1 al 3 de 3

cogecorreo (shell script)

  1. #1 cogecorreo (shell script) 
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Aquí os dejo este script, a mí me sirve para recoger automáticamente el correo de todas mis cuentas y notificarme de su llegada. Con la notificación, me abre directamente mutt en una terminal.

    El script lo meto en un crontab del usuario y también creo un logrotate para los logs que genera. Si a alguien le interesa le paso el resto.

    El script en cuestión es éste:

    Código:
    #!/bin/sh
    
    # With this configuration, it is necessary to create a 
    # directory /var/run/cogecorreo.$USER with the current user 
    # as owner, as well as a /var/log/cogecorreo.$USER.log one.
    #
    # i.e. (as root): 
    #         mkdir /var/run/cogecorreo.$USER
    #         touch /var/log/cogecorreo.$USER.log
    #         chown $USER /var/run/cogecorreo.$USER /var/log/cogecorreo.$USER.log
    #
    
    logfile="/var/log/cogecorreo.$USER.log"
    pidfile="/var/run/cogecorreo.$USER/cogecorreo.pid"
    maildir="/home/$USER/Maildir"
    mboxes="$maildir/mailboxes"
    if [[ $1 == '-d' ]]; then
      debug=1
    fi
    
    function marca {
      date +%d-%m-%Y--%H:%M:%S
    }
    
    function sep {
      echo '-------------------------------------------------------------------------------'
    }
    
    function old_open {
      test -f $pidfile || return 1
    }
    
    function notify {
      echo $$ > $pidfile
      if [[ `find $mboxes/ -type d -name new -exec ls {} \; ; ls $maildir/new` != '' ]]; then
        kdialog --display :0 --msgbox 'Hay correo nuevo' && xterm -display :0 -fb black -fa 'Andale Mono' -fg orange -fs 13 -e 'mutt -y'
      fi
      rm -f $pidfile
    }
    
    function main {
      sep
      marca
    
      if [[ -z $debug ]]; then
        mpop -n --tls-certcheck=off
        fetchmail
      fi
    
      old_open || notify | tee -a $logfile
    }
    
    
    
    exec 2>&1
    (($debug)) && set -x
    main
    Asimismo, si a alguien interesa el shell scripting puedo comentar el código, que es bantante sencillo.


    Salu2

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

  2. #2  
    Moderador HH
    Fecha de ingreso
    Sep 2003
    Mensajes
    1.384
    Descargas
    21
    Uploads
    5
    Muy interesante el script, solo que no tengo mpop ni fetchmail, los configuro y despues cuento que tal anda.

    Saludoss
    - Me desagrada
    - ¿Por qué?
    - No estoy a su altura.
    ¿Ha respondido así alguna vez un hombre?

    Friedrich Nietzsche



    Citar  
     

  3. #3  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Realmente sólo es necesario uno de los dos.

    El esquema de la configuración de mi sistema de correo utiliza las siguientes aplicaciones:

    • fetchmail
      Para recoger el correo desde mis cuentas de email externas
    • mpop
      Igual que fetchmail en funciones (no es necesario)
    • procmail
      Procesador de correo, lo distribuye a los directorios que se le indica en el archivo de configuración.
    • exim4
      MTA o agente de transferencia de email. Es un reemplazo de sendmail con el que podemos enviar correo (entre otras muchas funcionalidades)
    • mutt
      MUA o Agente usuario de correo. Con él podemos visualizar nuestros correos, gestionarlos (copiar, mover, enviar -usando un MTA externo, como exim4-, etc)
    • dovecot
      Servidor de correo. Con él podemos tener un servidor de POP3, IMAP, POP3S, IMAPS


    En este escenario, fetchmail recoge el correo y se lo pasa a exim4. Pero exim4 "usa" procmail para guardar el correo en los directorios especificados en la configuración. Luego, mutt, a través de parámetro -y, muestra los distintos mailboxes que se le han configurado (que son los destinos especificados en el archivo .procmailrc en este caso).

    Una tarea de crontab se encarga de ejecutar cogecorreo.sh a intervalos de tiempo regulares (en mi caso, cada 5 ó 10 minutos). Al ejecutar fetchmail, el correo recogido acaba directamente en el mailbox que le corresponda. cogecorreo.sh busca en los directorios de correo nuevo de los mailboxes, y si encuentra correo nuevo, muestra el diálogo por pantalla. Al pulsar sobre 'ok', se abre mutt (con el parámetro -y), mostrando todos los mailboxes.

    Es una configuración relativamente compleja, pero merece la pena, porque se puede gestionar todo el correo localmente sin tener que utilizar ninguna interfaz (sólamente mutt y el diálogo de aviso).

    Salu2

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

Temas similares

  1. shell irc
    Por Dieguis en el foro BASES DE DATOS
    Respuestas: 1
    Último mensaje: 18-04-2009, 13:17
  2. shell
    Por the_piyoyo en el foro GENERAL
    Respuestas: 1
    Último mensaje: 18-08-2006, 15:03
  3. Shell
    Por cani2k en el foro INTRUSION
    Respuestas: 2
    Último mensaje: 30-06-2004, 00:40
  4. shell
    Por rower en el foro INTRUSION
    Respuestas: 14
    Último mensaje: 19-04-2004, 01:15
  5. Shell script al crear usuario
    Por soplo en el foro LINUX - MAC - OTROS
    Respuestas: 0
    Último mensaje: 21-10-2003, 21:52

Marcadores

Marcadores