Para poder enviar correos desde PostgreSQL en GNU/Linux existe una forma sencilla de hacerlo, un script PERL disponible dentro del manejador de base de datos a través de una función.
Debemos cargar el contenido del archivo pgmail.sql y pgmailt.sql que se muestan debajo, para crear la función de envío de correo y hacer pruebas, respectivamente.
root# su - postgres
postgres$ psql < pgmail.sql
postgres$ psql < pgmailt.sql
El archivo pgmail.sql contiene lo siguiente:
\c A;
-- CREATE LANGUAGE plperlu;
CREATE OR REPLACE FUNCTION pgmail(text, text, text, text) RETURNS INTEGER AS $$
$from_address = $_[0];
$to_address = $_[1];
$subject = $_[2];
$body = $_[3];
#$reply_to = '[email protected]';
$server = 'localhost';
use Mail::Sender;
$sender = new Mail::Sender
{
smtp => $server,
from => $from_address
};
$rc = $sender->MailMsg(
{
# replyto => $reply_to,
to => $to_address,
subject => $subject,
msg => $body
}
);
if(ref($rc)){
return 0;
}else{
elog(ERROR, $sender->{'error_msg'});
return $sender->{'error'};
}
$$ LANGUAGE plperlu VOLATILE STRICT;
El archivo pgmailt.sql contiene lo siguiente:
\c A;
select pgmail('[email protected]', '[email protected],[email protected]','Mail desde postgres', 'Test!!!');
Updated: 2012/03/14
![]() |