miércoles, 16 de enero de 2013

Envío de emails desde consola y con GMail

para el envío de alertas ... por ejemplo

Buenas tardes, vuelvo a disculparme por no postear tan frecuentemente como me gustaría, pero no consigo sacar tiempo de ninguna parte. Como ya tenemos notificaciones con muchos sistemas, hoy vamos a usar aquella que tal vez, debería haber sido la primera. El envío de correos desde la consola, es algo que Linux hace de maravilla y además muy fácil, por eso lo vamos a complicar un poquito, haciendo que sea la cuenta de correo de GMail, quien lo envíe. Al tema que te quema ...

Clientes de correo tenemos cientos, el más fácil para este propósito es MUTT, lo instalamos:
apt-get update
apt-get install mutt
Ocupa poco, pocas dependencias, fácil ... lo tiene todo. Ahora hay que configurar Mutt para cada usuario que lo vaya a usar, en mi caso solo es Root, así que el archivo de configuración es:
/root/.muttrc
Si quisiéramos que los enviase el usuario 'pi', el archivo sería:
/home/pi/.muttrc
Lo editamos con la siguiente información:
set from = "USER@gmail.com"
set realname = "Frikis House"
set imap_user = "USER@gmail.com"
set imap_pass = "CLAVE"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://USER@smtp.gmail.com:587/"
set smtp_pass = "CLAVE"
sustituimos USER por tú usuario de GMail y CLAVE ... por la clave, creamos el directorio:
mkdir -p /root/.mutt/cache
ya está. Para enviar un email:
echo "Hola mundo!! desde GMail" | mutt -s "Asunto del correo" destinatario@gmail.com
para enviarlo con un adjunto:
echo "ojo que vienen adjuntos" |  mutt -s "prueba de adjuntos" destinatario@gmail.com -a /ruta/completa/al/archivo.ext
si te fijas un poco en la configuración, verás que tiene "algo" más que en principio no hemos usado ... tiempo al tiempo.

integración con Transmission

Para que transmission nos envíe un email cada vez que termina de bajar un torrent, editamos el archivo /etc/transmission-daemon/settings.json y configuramos la línea:
    "script-torrent-done-filename": "/usr/local/bin/aviso_torrent.sh",
y en el script /usr/local/bin/aviso_torrent.sh podemos poner:
#!/bin/bash
# programdo por Juanmol para http://rsppi.blogspot.com
echo "$TR_TORRENT_NAME descargado correctamente" | mutt -s "nuevo torrent descargado" destinatario@gmail.com
/usr/bin/minidlna -R

actualización 22 Abril 2013: integración con Asterisk (Voicemail)

Una de las muchas características de Asterisk, es que tiene buzón de voz, o servicio de contestador automático, como quieras llamarlo. Puede programarse de varias formas y tiene la ventaja de enviar emails con los adjuntos de la grabación. En nuestro caso vamos a ir un poco mas allá y vamos a configurarlo para que envíe los email con mutt desde Gmail y con los adjuntos en mp3. Básicamente porque Xesco me lo ha pedido. Primero configuramos el archivo /etc/asterisk/voicemail.conf:
[general]
format=wav
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
emaildateformat=%A, %B %d, %Y at %r
pagerdateformat=%A, %B %d, %Y at %r
mailcmd=/usr/local/bin/envia_voicemail.sh

[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM

[default]
1002 => 1002,USUARIO APELLIDOS,DESTINO@gmail.com
Para el voicemail tienes miles de ejemplos y configuraciones en esta web. Ahora ponemos alguna condición en el dialplan, en el archivo /etc/asterisk/extensions.conf:
[entrantes]
exten => s,1,NoOp(Ha llamado ${CALLERID(num)} con Voicemail a los 20 segundos)
same => n,Dial(SIP/1002&SIP/Juanlu,${TIMEOUT},20,${opc})
same => n,Voicemail(1002@default,s)
same => n,Hangup()
Nos aseguramos de tener las dependencias:
apt-get install lame libmp3lame0 
y ponemos este script en /usr/local/bin/envia_voicemail.sh:
#!/bin/bash
# Programado por Juanmol para http://rsppi.blogspot.com

lame=$(which lame)
mutt=$(which mutt)
#Capturamos las variables del mensaje
directorio=$(ls -l --sort=time /var/spool/asterisk/voicemail/*/*/INBOX | head -1 | cut -f1 -d\:)
archivo=$(ls --sort=time -l $directorio | head -2 | tail -1 | awk '{ print $9 }' | cut -f1 -d\.)
origen=$(cat $directorio/$archivo.txt | grep callerid | cut -f2 -d\=)
fecha=$(cat $directorio/$archivo.txt | grep origdate | cut -f2 -d\=)
duracion=$(cat $directorio/$archivo.txt | grep duration | cut -f2 -d\=)
usuario=$(cat /etc/asterisk/voicemail.conf | grep ^$(echo $directorio | cut -f7 -d\/) | cut -f2 -d\,)
mail=$(cat /etc/asterisk/voicemail.conf | grep ^$(echo $directorio | cut -f7 -d\/) | cut -f3 -d\,)

#cambiamos a mp3
$lame -h -b 192 $directorio/$archivo.wav $directorio/$archivo.mp3

#enviamos
echo "Hola $usuario, ha recibido un mensaje de voz del numero $origen, el $fecha, con una duracion de $duracion segundos" | $mutt -s "nuevo mensaje $archivo en el buzon de voz" $mail -a "$directorio/$archivo.mp3"

Fácil ;)

63 comentarios:

  1. Otra opcion para mandar mail desde la consola con ssmtp:

    sudo apt-get install ssmtp
    sudo apt-get install mailutils

    sudo nano /etc/ssmtp/ssmtp.conf
    Agregar al final del fichero de configuracion anterior lo siguiente al final:
    AuthUser=tucorreo@gmail.com
    AuthPass=tucontraseña
    FromLineOverride=YES
    mailhub=smtp.gmail.com:587
    UseSTARTTLS=YES

    para enviar:
    echo "texto a teclear" | mail -s "Asunto" usuario@gmail.com


    ResponderEliminar
  2. Con "/usr/bin/minidlna -R" al final del script, lo que haces es reindexar de nuevo minidlna, no? Eso es nuevo y es una muy buena idea!

    Yo el envio por gmail lo hago con sendEmail. Lo saque de esta web:
    http://mateware.blogspot.com.es/2012/05/enviar-un-mail-desde-bash-con-cuenta-de.html

    Es muy sencillo y hast hay ejemplos y un script

    ResponderEliminar
  3. Yo lo hago en python...

    Con MIMEText y mailServer

    ResponderEliminar
  4. Buenas!! Sabeis si hay algo para hacer de manera inversa?
    Desde el chat del gmail enviar algún comando y empiece a bajar series que vayan saliendo.
    Algo lei en su dia pero no entre en el tema la verdad.

    ResponderEliminar
    Respuestas
    1. tienes parte de eso en el post de "alarma laser" http://rsppi.blogspot.com.es/2012/07/alarma-laser-usando-gpio.html de todas formas quiero retomar ese tema para mandarle x10 desde Gtalk.

      Eliminar
    2. Yo estoy haciendo una aplicacion para iphone que conecte con el mochad atraves de ssh para controlar los x10

      Eliminar
    3. fue de las primeras cosas que se me ocurrieron, pero con Android por supuesto ;) pero después pensé, que ya que el Raspberry va a recibir GTalk, Whatsapp, Line, emails, ordenes de Asterisk ... ¿para que complicarme desarrollando una app que haga lo mismo?

      Eliminar
    4. En mi caso solo puedo mandar órdenes atraves de ssh y entre eso y que quiero que mi señora pueda usarlo también pues lo más simple una app

      Eliminar
  5. Humm, la idea es buena, pero aquellos que usamos Gmail con la autenticacion en dos fases..? como se lleva con ello?

    ResponderEliminar
    Respuestas
    1. fácil, en la configuración de los dos pasos, puedes crear claves (un paso) para aplicaciones específicas. Creas una aplicación nueva, la llamas "gmail desde Raspberry" y pones en el Raspberry la clave que te genera Gmail. Fácil y sencillo y para toda la familia ;)

      Eliminar
  6. Saludo.
    Estoy siguiendo tu blog con mucho entusiasmo. Soy nuevo con la raspberry. Me va genial. Funcionando minidlna, transmission y ahora esto, el envío de mensajes. Desde comando me envía el mensaje email sin problema, pero cuando lo íntegro en la configuración del transmission para que se ejecute el script al finalizar la descarga, no me envía el email.
    Me podrías orientar donde fallo?
    Lo he instalado para el usuario Pi.

    ResponderEliminar
    Respuestas
    1. lo mejor es que busques primero el log del transmission, si el script tiene un fallo telo dira ahi. Tambien tienes que tener muy claro que usuario ejecuta el script y los permisos de este.

      Eliminar
    2. He estado mirando los log. Tanto el /var/log/daemon.log como el /var/log/syslog aparece una linea de que llama al script de aviso_mensaje.sh y en las siguientes lineas no aparece ningun error al respecto.
      ¿el script puede estar en /home/pi/scripts/ o tiene que estar en /usr/local/bin/? y ¿que permiso, propietario y grupo deben de tener?

      Eliminar
  7. Buenas Juan Mol,

    Llevo unos días picado leyendo todo lo que pones y ayer se me ocurrió una cosa que con ésta última creo que cierra lo que quería hacer.

    La idea es descargar libros en epub a través de torrent (igual que con las peliculas o series), moverlas a dropbox a una carpeta donde tengas tu biblioteca, y por mail mandarla al que tengas configurada en el kindle (algo muy cómodo).

    Aún no tengo mi raspberry pero me estoy apuntando todo lo que quiero hacer. GRACIAS POR TODO Y SIGUE ASI!

    ResponderEliminar
    Respuestas
    1. buena idea. El kindle puede leer el libro de tu nube de amazon? si es asi podrias subirlo ahi en lugar de al dropbox y te ahorras un par de pasos ¿no? no tengo ni kindle ni nube de amazon, asi que no piedo ayudarte mucho mas, sorry.

      Eliminar
    2. Yo tampoco tengo nube de amazon, pero lo de dropbox lo hago por el hecho de tener luego el Calibre bien actualizado en los demás PC's y la biblioteca accesible siempre.

      Eliminar
  8. ¿Alguna idea de por que puede ser que el script se ejecute lanzandolo directamente, pero no desde el transmisión? ¿Pueden ser temas del usuario debían-transmission?.

    mi sudo nano /etc/transmission-daemon/settings.json está así:

    "script-torrent-done-enabled": true,
    "script-torrent-done-filename": "/usr/local/bin/torrent_done.sh $TR_TORRENT$/$TR_TORRENT_NAME",

    Muchas Gracias y enhorabuena por el blog.

    ResponderEliminar
    Respuestas
    1. te comento lo mismo que a otro que le pasaba lo mismo, mira primero el log del transmission, si al script le falla algo o no tiene permisos adecuados te lo avisara ahi. Ya nos cuentas como te ha ido.

      Eliminar
    2. ¿Donde puedo ver ese log?

      Gracias

      Eliminar
    3. pues tiene que tener un archivo propio en /var/log o si no lo tiene, estara en /var/log/syslog
      O bien puedes lanzar transmission desde el rc.local y desactivando antes su inicio automatico, como tengo yo:
      screen -d -m -S transmission nice -n15 transmission-daemon -f -T -g /etc/transmission-daemon/
      de forma que te conectas al screen del transmission y ves lo que va haciendo, que seguramente te devolverá mas informacion. El uso de screen y nice estan explicados en este blog ;)

      Eliminar
    4. En syslog, me encuentro líneas donde indica que se llama al script, pero el contenido no se está haciendo:


      Jan 19 19:40:33 raspberrypi transmission-daemon[2598]: XXXXXXXXXXXXXXXXCalling script "/usr/local/bin/torrent_done.sh" (torrent.c:2$

      Eliminar
  9. Hola Juanmol,

    algo curioso, con una cuenta ya creada de gmail, la mía principal, funciona a las mil maravillas, pero ser me ocurrió crear una cuenta de gmail para la raspberry y el resultado fue:

    SASL authentication failed
    No se pudo enviar el mensaje.

    He mirado la configuración un montón de veces y la de gmail para ver las posibles diferencias entre una y otra pero .... parece que algo se me escapa.

    Alguna idea??

    saludos

    ResponderEliminar
    Respuestas
    1. Me respondo a mi mismo, no pongáis caracteres especiales en la contraseña a mutt no le gustan

      Eliminar
    2. Y cómo hago entonces para enviar algo? Mi contraseña de gmail tiene bastantes caracteres raros!

      Eliminar
    3. EDIT: He creado otra cuenta nueva. Soy un genio!!! :D

      Eliminar
    4. Estoy trabajando en este proyecto y tuve el mismo problema con la autenticación SASL, para corregirlo tuve que habilitar el "Acceso de aplicaciones menos seguras" en GMail a través del enlace https://www.google.com/settings/security y luego me funcionó perfectamente! Saludos

      Eliminar
  10. Para los que tienen el problema de que no les envía el mail desde el script pero sí desde la línea de comandos, hay que darle permisos de ejecución al archivo(yo hice chmod 777 /.../script.sh y chmod +x /.../script.sh , supongo que uno de los dos es innecesario).

    Luego para que te salga el nombre del torrent en el mail hay que incluir en el settings.json de transmission como estaba en un comentario más arriba

    "script-torrent-done-filename": "/usr/local/bin/torrent_done.sh $TR_TORRENT$/$TR_TORRENT_NAME",

    Muchas gracias por este blog! Le estoy sacando 1001 usos a mi raspberry Pi!

    Saludos

    ResponderEliminar
    Respuestas
    1. gracias por responder!. Por cierto eso de 777 es un poco ... de aquella manera. El permiso de ejecución se da con chmod +x , así protegemos el sistema de manazas indeseados ;)

      Eliminar
  11. Hola Juan Mol!
    Ante todo darte la enhorabuena por el blog, abarcas muchas cosas y todas son interesantes. He tenido una idea para mejorar esta utilidad: Cada vez que se baje un torrent, que te mande un SMS al móvil. Esto se puede hacer enlazando tu cuenta de gmail y tu movil a una cuenta de IFTTT.com . Explico más extensamente como hacerlo en mi blog: http://jose-linares.com/?p=172

    Un saludo!

    ResponderEliminar
    Respuestas
    1. una web que va a saber el contenido de bandeja de entrada y mi móvil? pfff ... no se yo ...

      Eliminar
    2. ITTT.com es una web util para community mannagers. Tu te registras y activas tus redes sociales y servicios. De este modo, puedes hacer "recetas" en que si hay un tweet con el #rsppi lo publique en facebook, y que te mande un mail...

      En el caso del SMS no he probado, porque no se si en España eso tiene coste, y ademas. Para que quiero un SMS si me avisa por Gtalk GRATIS? (Quiza solo si me quedo sin 3G... pero si estoy sin 3G me da igual consultar mis torrents. Ya lo hare al llegar a casa... o mejor aun, aviso por gtalk y el mail y ya es suficiente, no?

      Por el resto,... buen spoiler de tu web Jose Linares. A ver si en la foto del blog respiras, que parece que vayas a explotar! jejeje

      Eliminar
    3. Jajaja! Gracias!

      Te puedo asegurar que los SMS a españa son gratis, los llevo usando ya bastante tiempo. Es verdad que con el 3G no te sirve apenas lo de los SMS, pero tal y como está la economía últimamente, no puedo estar pagando todos los meses por el ineternet. Voy tirando de wifi y ya de paso me desconecto un poco, que estoy enganchado xD

      Eliminar
  12. Hola,

    buen tutorial. Claro y conciso.

    Una anotación: yo uso un servidor de correo propio y al intentar enviar correo, mutt me hacía un bonito "Segmentation fault".

    Para corregirlo, ejecuta "mutt" sin ningún parámetro. Al entrar en el buzón, me ha mostrado una alerta del certificado SSL (TSL) diciendo que si se acepta o no (parece que no reconoce a StartSSL como entidad certificadora). Dándole a la "a", le decimos que acepte siempre (always) ese certificado.

    Una vez hecho eso, "q" para salir y ahora ya podemos enviar correos desde línea de comando.

    Saludos.

    ResponderEliminar
  13. A mi sigue sin funcionarme el script, en el log no veo nada que pueda con mis conocimientos indicarme el fallo. Le he dado permisos de todos y nada.

    Ademas no se porque pero algunos script solo me funcionan si primero les planto el /bin/bash, en este caso ni con esas.

    ResponderEliminar
  14. hola, no era capaz a que me funcionase el script de ninguna forma, permisos, he mirado el log y nada... Al final me ha funcionado, pero no se si me diréis que es una chapuza o que no debería hacerlo así:

    1º - sudo service transmission-daemon stop
    2º - sudo nano /etc/init.d/transmission-daemon
    3º - En la línea USER=, la dejo como USER=root, guardo
    4º - sudo service transmission-daemon start

    Lo dicho, así me ha funcionado, aunque no se si los que domináis linux, me diréis que es una chapuza que este demonio corra con roto

    ResponderEliminar
    Respuestas
    1. con roto noooo!!!! xD
      por lo visto el usuario por defecto de transmission no va muy fino, no se crean bien sus permisos. Si te vale de algo, mi transmission tambien corre como root.

      Eliminar
  15. DESESPERADO.
    De verdad, felicidades para todo aquel que le funcione. No consigo que me envie el dichoso email. He empezado de cero:
    1. imagen wheezy 2012-12-16
    2. activo ssh
    3. cambio contraseña pi y root
    4. hago update y upgrade
    5. me conecto a traves de ssh como pi@xxx.xxx.xxx.xxx
    6. instalo y configuro ddclient. sudo apt-get install ddclient
    7. instalo y configuro transmission. sudo apt-get install transmission
    8. monto disco externo con formato ext4 para carpeta: complete e incomplete
    9. instalo y configuro mutt como viene en el blog. sudo apt-get install mutt
    10. hago prueba de correo en terminal y todo ok.
    11. creo script para ejecucion. lo configuro en setting.json
    12. pongo el torrent a descargar y cuando finaliza nada de nada del envio del correo.

    He probado iniciando el transmission como root como dice David Rodriguez y tampoco.
    ¿tiene algo que ver el instalar los programas a traves de ssh y logueandome con el usuario pi? ¿tengo que isntalar los programas logueandome como root?

    No soy experto en linux pero son dudas que me surgen.
    No quiero dar el coñazo con esto, pero ¿porque a algunos le funciona y a mi no?

    ResponderEliminar
    Respuestas
    1. no te desesperes hombre, no merece la pena. Yo llevo 7 años dedicándome a esto y te digo que expertos ... hay pocos.

      tanto si haces login por ssh, como por local, no tiene ninguna diferencia. Si lo ejecutas como root o como el usuario pi con "sudo ..." tampoco tiene ninguna diferencia.

      Te falta el punto 11.5. ¿has probado ejecutar el script?, según dices en 10. haces pruebas de envio de email ¿pero lo pruebas desde el script que ejecuta el transmission?

      Eliminar
    2. La prueba de envio la hago desde el terminal de comando escribiendo p.e:
      echo "prueba" | mutt -s "asundo" destinatario@correo

      y funciona.
      Ejecuto el script del transmission desde el terminal de comando:

      aviso_torrent.sh
      y funciona tambien.
      El problema lo esta dando el transmission. ¿puedes reportar tu setting.json por si se me escapa algo?

      Eliminar
  16. Bueno, tras trastear un par de horas y volverme loco he dado con la solución.

    El problema era de permisos, como no, transmission se ejecuta con el usuario debian-transmission, con lo que éste debe tener configurado su mutt correspondiente, o bien, se ejecuta trasnmission con root, y este a su vez debe tener su configuración mutt correspondiente para que cuando se ejecuta el script del aviso lo haga correctamente.

    Me he dado cuenta al abrir una sesion desde root, he ejecutado el script, y nada, y claro, es que el usuario root no tenía definida la configuración de mutt, solo lo había hecho para el usuario pi, y me llevaba a error.

    ResponderEliminar
    Respuestas
    1. supongo que eres Salvador, solo hace falta paciencia. Siempre podemos ver logs, hacer pruebas y los fallos que salen, suelen tener una explicación. Es una de las grandes ventajas de linux frente ... cualquier cosa que no sea linux.

      Eliminar
    2. Yo no he escrito eso. Lo que pone Anonimo lo he revisado en mi configuracion. Tengo configurado mutt tanto para root como para pi en /root/.muttrc y en /home/pi/.muttrc con todo los derechos chmod 777 sobre los archivos.
      Y Transmission funcionando como root.
      mi script aviso_torrent.sh tiene de dueño root y de grupo staff. ¿Es esto correcto?

      Eliminar
    3. no creo que sea el grupo lo que falla, ppr si acaso cambialo con:
      chown root:root script.sh

      a ver, pensemos... as visto en los logs si te hace el intento de ejecucion del script? como se arranca el transmission?

      Eliminar
    4. Este comentario ha sido eliminado por un administrador del blog.

      Eliminar
    5. Salvador, he creido conveniente borrar el comentario, no te recomiendo publicar esos datos, estamos entre colegas y nadie se conectaría a tu casa para hacer maldades ... pero nunca se sabe. Te recomiendo (de verdad de la buena) que cambies la clave de root y de pi ahora mismo, piensa que la clave de tu correo esta en los archivos de configuracion.

      Eliminar
    6. ... y cambia la clave del correo.

      Eliminar
    7. no te preocupes, las contraseñas las he cambiado para este proposito. Como he dicho, el domingo formateo y empiezo de cero con mis contraseñas. la cuenta de correo la he creado para este proposito tambien.
      Gracias. Lo tuve en cuenta.

      Eliminar
    8. Hola Salvador
      Has podido solucionar el problema, estoy en la misma situación que tu, el script no va con trasmission, HELP

      Eliminar
  17. Perdón por la confusión, soy el anónimo que tenía el mismo problema que Salvador y se me ha solucionado como dicen algunos en comentarios más arriba ejecutando transmission como root:

    1º - sudo service transmission-daemon stop
    2º - sudo nano /etc/init.d/transmission-daemon
    3º - En la línea USER=, la dejo como USER=root, guardo
    4º - sudo service transmission-daemon start

    ResponderEliminar
  18. Yo estoy empezando en este mundillo y acabo de poner un blog para contar las cosas que vaya logrando con el raspberry pi, o problemas que suelo tener y soluciono etc... he visto tu post y creo que podrías hacer uno incluso mejor. Prueba con python. Yo he modificado un script para que se puedan adjuntar archivos, mira el post, hazlo tu mismo y luego escribe uno. Es muy fácil, no creo que tardes mucho en hacerlo. Un saludo

    http://solvingmytechworld.blogspot.com.es/2013/01/send-email-through-gmail-running-script.html

    ResponderEliminar
  19. Buenas noches a todos,

    al final con el penúltimo comentario me funciona a la perfección peroooo, solo si no tienes usuario y contraseña para entrar al transmission desde web, si lo tienes no funciona, que tendría que poner en el script ???

    - Este blog es la leche cada día aprendo algo ...
    saludos

    ResponderEliminar
  20. Hay alguna forma de encriptar la contraseña? no me gusta dejar la contraseña en archivos sueltos.

    Felicidades por el Blog. Añadido a favoritos!!

    ResponderEliminar
    Respuestas
    1. añades a favoritos y no pones un nombre?!! ¬¬
      Hola Anónimo, desconozco si se puede encriptar, generar un certificado o algo similar, seguramente se pueda. Te recomiendo usar la doble autenticación de Google y crear una clave concreta para el script, que nunca será la misma del login.
      Y ponte nombre! me siento como un loco hablando a la pared.

      Eliminar
  21. Hola, como se podría hacer para que al conectarse a través de ssh a la rasp envié un correo automáticamente?

    Muchas gracias

    ResponderEliminar
    Respuestas
    1. monitorizando el archivo log de autenticacion, que viene a ser en debian /var/log/auth.log , genera una entrada del tipo:
      Jun 11 14:04:50 raspberrypi sshd[17596]: pam_unix(sshd:session): session opened for user root by (uid=0)

      lo que viene a ser: root se conecto por ssh a las 14:04:50

      lo monitorizas con incron que es el que ejecutaria el envio del email, tienes varios ejemplos en este blog. ANIMO!

      Eliminar
    2. Muchas gracias, ya lo he preparado. Con el incron.
      Cada vez que se modifica el fichero auth.log ejecuto un script y si en la modificación se ha hecho una conexión a través de (sshd:session) envió un correo, y si si la autentificacion es incorrecta guardo la linea en un ficehro de log.

      Eliminar
  22. Tengo una duda. He implementado el uso de GMail en Asterisk tal y como dices, pero no me funciona.

    Deduzco que el voicemail ejecuta /usr/local/bin/envia_voicemail.sh porque si entro en /var/spool/asterisk/voicemail/default/100/INBOX ahi encuentro el archivo en MP3 generado.

    No entiendo que es lo que sucede...
    Si ejecuto /usr/local/bin/envia_voicemail.sh directamente a mano, me llega perfectamente el mail con los adjuntos, pero si lo ejecuta Asterisk, solo convierte el WAV en MP3.

    Quiza sea que debo configurar el Mutt con algun tipo de usuario que no he configurado?
    Tengo mutt configurado para el usuario root y pi.

    ResponderEliminar
    Respuestas
    1. por el usuario no creo que sea, ya que si as configurado mutt para root, el usuario que ejecuta el script del voicemail es root (el que ejecuta asterisk).
      Cuando se dan fallos como este, que si se tieme que ejecutar automaticamente no funciona, pero si lo ejecutas a mano si, suele ser fallo de las rutas relativas, ya que el path puede ser distinto. Revisa esto y por supuesto los logs de asterisk, mutt y syslog. Si ves algo raro, ponlo por aqui a ver si lo solucionamos.
      Mi consejo tras 9 años de linux: usa siempre rutas absolutas en llamadas a scripts automaticos.

      Eliminar
    2. Saludos, esta entrada es algo vieja pero como no tiene respuesta aprovecho para responderla ya que desde hace 2 días se me está presentando y en este momento acabo de solucionarlo. Primero que nada se debe verificar con qué usuario se está ejecutando Asterisk, esto lo pueden hacer ejecutando "ps -aux | grep asterisk", en mi caso el resultado de ese comando fue:

      asterisk 3542 61.4 4.6 59360 20760 ? Ssl 23:15 0:07 /usr/sbin/asterisk -p -U asterisk

      El valor de la primera columna de la izquierda me indica el usuario con el que se está ejecutando la aplicación, en este caso es "asterisk" (yo instalé la centralita con apt-get install pero en su caso podría ser otro, por ejemplo "root" o cualquier otro). Con este usuario hacemos una consulta al archivo /etc/passwd con este comando "cat /etc/passwd | grep asterisk", en mi caso, el resultado del comando fue:

      asterisk:x:109:112:Asterisk PBX daemon,,,:/var/lib/asterisk:/bin/false

      Se puede observar que el directorio home del usuario "asterisk" es "/var/lib/asterisk", por lo tanto, allí es donde deben ubicar el archivo ".muttrc", reinician el servicio de asterisk y ahora sí les funcionará el servicio de envío de correo. Disculpen lo largo del post pero quería ser lo más claro posible.

      Eliminar