Enviando emails a partir de triggers (PostgreSQL)

Uma funcionalidade/necessidade útil em SGBDs é o envio de emails por uma trigger disparada em “eventos” (insert, update, delete) de uma determinada tabela.

O problema é que pode acontecer muita coisa com o serviço de emails, e, consequentemente “travar” a transação do SGBD.

(Algumas considerações interessantes sobre isso podem ser lidas aqui: http://stackoverflow.com/…/how-can-i-send-email-from-postgr…)

Para contornar tais problemas o PostgreSQL tem o notify: o envio de notificações em canais determinados pelo desenvolvedor. Pode-ser usar uma trigger para notificar um canal e este, por sua vez, dispara um email por meio de um script Python.

http://www.divillo.com/ descreve um bom exemplo de como fazê-lo. Mas nada melhor que a própria documentação do driver psycopg2: http://initd.org/psycopg/docs/advanced.html

Trata-se uma técnica extremamente útil e claro, divertida de implementar.