From: | Miguel González <iafmgc(at)unileon(dot)es> |
---|---|
To: | |
Cc: | "PostgreSQL SQL" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: Registring a C function in PostgreSQL II |
Date: | 2001-09-19 18:23:50 |
Message-ID: | 001501c14138$3af36c10$1301a8c0@uimagen |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Thank you very much for your help.
After being testing the program first from my prompt (it worked fine) and
then within PostgreSQL, I realized that I was using aliases for the system
users emails (for instance I used postgres instead of
postgres(at)myhost(dot)mydomain(dot)com
once that i tried the "complete" email address it worked fine. Is it
possible to use aliases from within PostgreSQL (outside works fine, which
is
something weird that I dont understand).
Many thanks
Miguel
> ----- Original Message -----
> From: "Haller Christoph" <ch(at)rodos(dot)fzk(dot)de>
> To: "Miguel González" <iafmgc(at)unileon(dot)es>
> Cc: <pgsql-sql(at)postgresql(dot)org>
> Sent: Wednesday, September 19, 2001 4:41 PM
> Subject: Re: [SQL] Registring a C function in PostgreSQL II
>
>
> > I'm working on a HP-UX system, so some of the
> > following has to be adapted, but in principle
> > it's the same on every system and it works.
> > First piece of code is a standalone program,
> > which you should always write and test before
> > you start creating C functions inside PostgreSQL.
> > Second piece is your sendemail function slightly
> > modified to make it run on my system.
> > When I do a
> > select sendemail('ch', 'was soll das?') ;
> > I'm receiving an email from postgres.
> > Regards, Christoph
> >
> > First piece:
> >
> > /*
> > cc -Aa -g -I/opt/pgsql/include/ -c sendemtest.c
> > cc sendemail.o sendemtest.o -o sendemtest
> > */
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <string.h>
> > #include "postgres.h"
> >
> > void main() {
> > char buf[1024];
> > int ln;
> > text *res;
> > text *to;
> > int sendemail(text *email,text *message);
> >
> > strcpy(buf, "Kissenminister Aussinger \n");
> > ln = strlen(buf);
> >
> > res = (text *) malloc(VARHDRSZ + ln);
> > memset(res, 0, VARHDRSZ + ln);
> > res->vl_len = VARHDRSZ + ln;
> > memcpy(res->vl_dat, buf, (int) ln);
> >
> > strcpy(buf, "ch");
> > ln = strlen(buf);
> >
> > to = (text *) malloc(VARHDRSZ + ln);
> > memset(to, 0, VARHDRSZ + ln);
> > to->vl_len = VARHDRSZ + ln;
> > memcpy(to->vl_dat, buf, (int) ln);
> >
> > sendemail(to, res);
> > }
> >
> > Second piece:
> >
> > /*
> > cc -Aa -g -I/opt/pgsql/include/ +z -c sendemail.c
> > ld -b -o sendemail.sl sendemail.o
> >
> > CREATE FUNCTION sendemail(text,text) RETURNS int4
> > AS '/fdsk2/users/ch/tools/pgsql.mydoc/sendemail.sl' LANGUAGE 'c';
> > DROP FUNCTION sendemail(text,text);
> > */
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include "postgres.h"
> >
> > int sendemail(text *email,text *message)
> > {
> > int result = 0 ;
> >
> > char string_tosend [300];
> >
> > sprintf(string_tosend,"/usr/bin/echo \"%s\"
> >/tmp/mailtmp.txt\n",VARDATA(message));
> >
> > result += system(string_tosend);
> >
> > sprintf(string_tosend,"/usr/bin/mail -dt %s </tmp/mailtmp.txt \n",
> > VARDATA(email));
> >
> > result += system(string_tosend);
> >
> > result += system("/usr/bin/rm /tmp/mailtmp.txt");
> >
> > return result;
> >
> >
> > }
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
> >
>
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel González | 2001-09-19 18:55:49 | Creating a boolean function |
Previous Message | Kovacs Baldvin | 2001-09-19 16:55:19 | Re: Checking for table existence (fwd) |