Enviar correos electrónicos desde PostgreSQL con pgMail
miércoles, mayo 07, 2014
Es posible enviar correos electrónicos desde PostgreSQL de diferentes maneras (aquí les muestro otra forma que recomiendo más), en este caso voy a explicarlo con el procedimiento almacenado pgMail. Su funcionamiento es sencillo pero existe muy poca documentación al respecto y su principal limitante es que solo funciona con servidores de correos sin autenticación requerida.
Características del servidor de pruebas:
Pasos de instalación:
1. Descargar los archivos de pgMail de su pagina oficial: pgMail. El paquete incluye:
Características del servidor de pruebas:
- Debian Squeeze
- PostgreSQL 8.4
Pasos de instalación:
1. Descargar los archivos de pgMail de su pagina oficial: pgMail. El paquete incluye:
- pgMail-x.x/CHANGELOG (notas de la versión)
- pgMail-x.x/example.cleanup.sql (ejemplo)
- pgMail-x.x/example.execute.sql (ejemplo)
- pgMail-x.x/example.setup.sql (ejemplo)
- pgMail-x.x/pgMail/pgMail.sql (procedimiento almacenado pgMail)
- pgMail-x.x/pgMail/README (archivo que indica la configuración básica del procedimiento)
dpkg - i tcl8.5.deb
3. Descargar e instalar la librería pltcl de PostgreSQL. Para instalarla ejecute:
dpkg - i postgresql-pltcl-8.4.deb
4. Instalar el lenguaje pltclu en la base de datos de la cual se desea enviar los correos:
CREATE LANGUAGE pltclu;
5. Configurar el procedimiento pgMail antes de instalarlo en la base de datos, ubicado en la carpeta pgMail/pgMail.sql de los archivos descargados inicialmente. Ver el archivo README que se incluye dentro de estos archivos para ver esta configuración completa:
- Reemplazar el texto <ENTER YOUR MAILSERVER HERE> con el nombre de dominio completo de su servidor de correo, P.Ej. mail.server.com.
- Reemplazar el texto <ENTER YOUR DATABASESERVER HERE> con el nombre de dominio completo del servidor de base de datos, P.Ej. db.server.com.
6. Instalar el procedimiento pgMail en la base de datos correspondiente.
7. Listo, para probar el correcto funcionamiento ejecutar el siguiente query:
SELECT pgmail('correoenvio@tudominio.com','correodestino@tudominio.com', 'Asunto', 'Cuerpo');
Advertencias:
- La instalación de lenguajes sin restricciones en la base de datos aunado a una mala configuración de seguridad del servidor de base de datos puede traer malas consecuencias. Tomar sus previsiones.
Cuando navego por los sitios web, mi parte favorita es leer los comentarios. Es por eso que tus comentarios son un complemento valioso para mis entradas. Cualquier duda o aporte no dejes de escribirlo, en breve lo estaré publicando. ¡Gracias!
3 comentarios
Interesante, gracias por compartir.
ResponderBorrarpero en el caso de que el servidor de correo tenga passowrd donde se tendria que agregar este ?
ResponderBorrarSaludos! Para servidores con autenticación requerida te recomiendo éste otro método: http://lachicainf.blogspot.com/2014/05/correos-desde-postgresql-con-python.html
Borrar