C function to send an email in PostgreSQL - Mailing list pgsql-php

From Miguel González
Subject C function to send an email in PostgreSQL
Date
Msg-id 004001c140f7$cf7dc330$1301a8c0@uimagen
Whole thread Raw
Responses Re: C function to send an email in PostgreSQL
List pgsql-php
Dear all,
 
 I want to create a function to send an email. I pass to the function two arguments: the email to send, and the text
to send.

 First, I tried with pointers to char. It worked when I just create a
function called "sendemail()" with no arguments and set inside the text and
the email arguments.

 When I read some more documentation about how to use strings in PostgreSQL,
I discovered that I have to use the text type in my C program I just try it
but
although it worked before, now I doesnt work.

 This is what I have tried:


 #include <stdio.h>
 #include "postgres.h"

 int sendemail(text *email,text *message)
 {

     char string_tosend [300];

     sprintf(string_tosend,"echo \"%s\" >/tmp/mailtmp.txt
\n",VARDATA(message));

     system(string_tosend);

    sprintf(string_tosend,"mail -s \"message from PostgreSQL\" %s
</tmp/mailtmp.txt \n",VARDATA(message));

     system(string_tosend);

     system("rm /tmp/mailtmp.txt");

     return 0;


 }


 and then in the back-end of PostgreSQL and I declared

 CREATE FUNCTION sendemail(text,text)
 RETURNS int4
 AS '/home/postgres/libpginvuimail.so'
 LANGUAGE 'c';

 and then SELECT sendemail('postgres','test from backend');

 and it didnt work. What am I doing wrong?

 I have being testing and I guess is something to do with the text data type
and how to use it within a C program.

 Many thanks in advance

 Miguel

pgsql-php by date:

Previous
From: Miguel González
Date:
Subject: Registring a C function in PostgreSQL
Next
From: Vince Vielhaber
Date:
Subject: Re: C function to send an email in PostgreSQL