
CentOS 5.x | Enviar correo
Hola chicos,
¿Existe una manera fácil de recuperar mensajes individuales de /var/spool/mail/? Tengo una idea para un guión realmente simple y me gustaría comprobar cada mensaje individual en busca de algo.
El escenario sería:
1) llega un nuevo correo electrónico a la bandeja de entrada. 2) El script comprueba cierta cadena. 3) Si se encuentra una cadena, el script recupera información del encabezado y envía información por correo electrónico a la dirección.
Me doy cuenta de que un milter probablemente sería el camino a seguir, pero esperaba encontrar una manera de hacer esto con un script de shell, ya que quiero practicar eso. El problema es que parece que no puedo encontrar una manera de analizar o aislar los mensajes individuales. Cuando examino /var/spool/mail/, veo un archivo grande con múltiples mensajes y sin un delimitador único entre mensajes.
Respuesta1
Si ignora los scripts de shell simples, casi todos los lenguajes de programación tienen una biblioteca para analizar unmboxbuzón formateado.
- http://docs.python.org/library/mailbox.html
- http://search.cpan.org/~dcoppit/Mail-Mbox-MessageParser-1.5002/lib/Mail/Mbox/MessageParser/Perl.pm
- http://www.phpclasses.org/browse/file/3127.html
Por supuesto, si miras a tu alrededor, también podrás encontrar muchas bibliotecas de clientes POP3 e IMAP.
También deberías poder usar algo comocorreo electrónicoobuzón de correopara filtrar tus mensajes.
Respuesta2
Clásicamente, este tipo de cosas se harían cuando se reciba el correo, utilizando un MDA como procmail. Si ya tiene un buzón, procmail viene con formail
(1) que le permite ejecutar un programa en cada correo en un buzón y tiene funciones para filtrar y reescribir encabezados.