Re: Triggers, Rules and email

From: Robby Russell <rrussell(at)commandprompt(dot)com>
To: pgsql-php(at)postgresql(dot)org
Cc: Aldo Leyva Alvarado <aleyva(at)medifarma(dot)com(dot)pe>
Subject: Re: Triggers, Rules and email
Date: 2004-01-30 16:42:15
Message-ID: 401A8967.1040106@commandprompt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

Aldo Leyva Alvarado typed this on 01/30/2004 08:00 AM:
> Yes, I want to see an example!!!!!!
>
>
> Aldo Leyva
> ----- Original Message -----
> From: "Robby Russell" <rrussell(at)commandprompt(dot)com>
> To: <pgsql-php(at)postgresql(dot)org>
> Sent: Friday, January 30, 2004 10:49 AM
> Subject: Re: [PHP] Triggers, Rules and email
>
>
>
>>scott.marlowe typed this on 01/20/2004 09:59 AM:
>>
>>>On Tue, 20 Jan 2004, Paul wrote:
>>>
>>>
>>>
>>>>Anyone know if I can create a trigger or a rule in Pgsql that will send
>>>>an email in the event of an attempt to update a database field no-one
>>>>should be updating?
>>>
>>>
>>>Sure, that would involve installing the pl language of your choice as an
>>>untrusted language. PHP can be installed that way as a pl, btw, then
>
> you
>
>>>can just use the mail() trigger function in it.
>>>
>>>http://www.commandprompt.com/entry.lxp?lxpe=294
>>>
>>>
>>
>>Yes, plPHP can be used for this. If you want an example, let me know and
>>I'll post one on the list.
>>
>>-Robby

As requested, here is a simple function that takes 4 arguments ($arg0-3)
and utilizes the php mail() function. I added the headers for an example
of how easy it is to utilize plPHP in PostrgreSQL.

CREATE OR REPLACE FUNCTION phpmail(text,text,text,text) RETURNS integer AS '
# Argument list
$email_address = $arg0;
$email_from = $arg1;
$subject = $arg2;
$body = $arg3;

#
# ..Typically, you would validate arguments here

# Build email headers
$headers = "From: $email_from\r\n";
$headers .= "Reply-To: $email_from\r\n";
$headers .= "X-Mailer: plPHP";

# Send email
if (mail($email_address, $subject, $body, $headers)) {
return 1;
}
else {
return 0;
}

' LANGUAGE 'plphp';

#############################################
# Usage
#############################################
plphp_test=# SELECT phpmail('rrussell(at)commandprompt(dot)com',
'webmaster(at)robbyrussell(dot)com', 'Subject Line', 'This is the email
body\n\nMore body. Testing email. Test!\n\n\n-Robby') as email;
INFO: ret_val(long): 1
email
-------
1
(1 row)

#############################################
# Output
#############################################
webmaster(at)robbyrussell(dot)com typed this on 01/30/2004 08:34 AM:
> This is a body
>
> More body. Testing email. Test!
>
>
> -Robby

Feel free to join the plPHP mailing list as well.
http://mail.commandprompt.com/mailman/listinfo/plphp

Cheers,

Robby Russell

--
#-------------------------------------------------------
# Robby Russell, | Sr. Administrator / Lead Programmer
# Command Prompt, Inc. | http://www.commandprompt.com
# rrussell(at)commandprompt(dot)com | Telephone: (503) 667.4564
#-------------------------------------------------------

In response to

Browse pgsql-php by date

  From Date Subject
Next Message Alexander Popkov 2004-02-01 12:39:01 LOCKing method in my situation?
Previous Message Aldo Leyva Alvarado 2004-01-30 16:00:37 Re: Triggers, Rules and email