1

Temat: Wysyłanie wiadomości e-mail z bazy PostgrSQL

Witam!
Mam pytanie jak w temacie chciałbym przy wystąpieniu jakiegoś zdarzenia np. przy wpisie rekordu do bazy z wartością 123 wysłać wiadomość do zdefiniowanego adresata. W bazach MS SQL jest coś takiego jak raportowanie a jak to wygląda z poziomu postgres-a?

2

Odp: Wysyłanie wiadomości e-mail z bazy PostgrSQL

Wiesz co z takimi rozwiązaniami są zawsze największe problemy. No ale jeśli musisz to chyba jest pakiet pgsendmail albo pg_sendmail który potrafi wysyłać maile. Ewentualnie możesz sobie sam napisać taka funkcje przy użyciu np plperla lub plphp

3

Odp: Wysyłanie wiadomości e-mail z bazy PostgrSQL

A jak mogę sprawdzić (zainstalować) pakiet pgsendmail albo pg_sendmail o którym mowa?

4

Odp: Wysyłanie wiadomości e-mail z bazy PostgrSQL

5

Odp: Wysyłanie wiadomości e-mail z bazy PostgrSQL

Ja bym napisał triger generujący jakiś plik tekstowy do danego katalogu, oraz  program do wysyłania maili (oczywiście program działający jako usługa systemowa) tak się składa że kiedyś napisałem taki program (raportujący błędy) pod win serwery tylko raporty nie szły z bazy a z aplikacji. (prawa autorskie sprzedałem ale mogę pomóc przy pisaniu aplikacji bo wiedzy nie sprzedałem, jak coś to message na priv (język DELPHI).  smile ).

A teraz pytanko czy można za pomocą trigra zapisać coś do pliku tekstowego poza bazą POSTGRESQL ?? Chyba tak ale mile był by widziany przykład, np . triger after update i zapis zaktualizowanych wartości do pliku.

Ostatnio edytowany przez Rady (2009-03-14 06:24:34)

6

Odp: Wysyłanie wiadomości e-mail z bazy PostgrSQL

Z poziomu procedury napisanej w jezyku untrusted np. plperlu, plphpu, można odwoyłwać się do systemu plików. Więc z pozimu trigger akorzytsjacego z takiej procedury pewnie też (aczkolwiek nigdy tego nie próbowałem)

7

Odp: Wysyłanie wiadomości e-mail z bazy PostgrSQL

Znalazłem funkcję pgmail napisaną w pltclu tylko że chyba będzie brakować opcji uwierzytelniania czy można to jakoś dodać? Protokół SMTP wymaga chyba szyfrowania base64 jak to dodać do tej funkcji?

create function pgmail(text, text, text, text) returns int4 as '
set mailfrom $1
set mailto $2
set mailsubject $3
set mailmessage $4
set myHost "<ENTER YOUR MAILSERVER HERE>"
set myPort 25
set mySock [socket $myHost $myPort]
set toemailaddress_start [string first "<" $mailto]
if {$toemailaddress_start != -1} {
    set toemailaddress_finish [string first ">" $mailto]
    set toemailaddress_start [expr $toemailaddress_start + 1]
    set toemailaddress_finish [expr $toemailaddress_finish - 1]
    set toemailaddress [string range $mailto $toemailaddress_start $toemailaddress_finish]
} else {
    set toemailaddress $mailto
}
set fromemailaddress_start [string first "<" $mailfrom]
if {$fromemailaddress_start != -1} {
    set fromemailaddress_finish [string first ">" $mailfrom]
    set fromemailaddress_start [expr $fromemailaddress_start + 1]
    set fromemailaddress_finish [expr $fromemailaddress_finish - 1]
    set fromemailaddress [string range $mailfrom $fromemailaddress_start $fromemailaddress_finish]
} else {
    set fromemailaddress $mailfrom
}
fileevent $mySock writable [list svcHandler $mySock]
fconfigure $mySock -buffering none
puts $mySock "helo <ENTER YOUR DATABASESERVER HERE>"
gets $mySock name
puts $mySock "mail from: $fromemailaddress"
gets $mySock name
puts $mySock "rcpt to: $toemailaddress"
gets $mySock name
puts $mySock "data"
gets $mySock name
puts $mySock "To: $mailto"
puts $mySock "From: $mailfrom"
puts $mySock "Subject: $mailsubject"
puts $mySock ""
puts $mySock "$mailmessage"
puts $mySock "."
gets $mySock name
close $mySock
return 1'
language 'pltclu';