Postgres + system pocztowy.
T. - 15-06-2006 00:33
Postgres + system pocztowy.
witam,
Czy udało komus sie kiedys powiązać bazę danych PostgreSQL z jakimkolwiek systemem pocztowym na zasadzie: pojawia sie określony rekord w bazie danych, wtedy jest wysyłany okreslony tekst pod wskazany adres mailowy. Będe bardzo wdzięczny za pomoc.
Pozdrawiam, T.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
hubert depesz lubaczewski - 15-06-2006 00:33
T. wrote: > Czy udało komus sie kiedys powiązać bazę danych PostgreSQL z jakimkolwiek > systemem pocztowym na zasadzie: pojawia sie określony rekord w bazie > danych, wtedy jest wysyłany okreslony tekst pod wskazany adres mailowy. > Będe bardzo wdzięczny za pomoc.
może powiedz jaki masz problem. osobiście nic takiego nie robiłem i osobiście uważam, że to kiepski pomysł, ale technologicznie nie widzę problemu by to zrobić. potrzebny ci będzie: 1. umiejętność pisania triggerów 2. jakiś język do procedur - ale koniecznie untrusted - np. c, pl/pythonu, pl/tclu, pl/perlu 3. trochę czasu.
depesz
-- http://www.depesz.com/ - nowy, lepszy depesz
Piotr 'piter' Hlawski - 15-06-2006 00:33
hubert depesz lubaczewski wrote:
> T. wrote: >> Czy udało komus sie kiedys powiązać bazę danych PostgreSQL z jakimkolwiek >> systemem pocztowym na zasadzie: pojawia sie określony rekord w bazie >> danych, wtedy jest wysyłany okreslony tekst pod wskazany adres mailowy. >> Będe bardzo wdzięczny za pomoc. > > może powiedz jaki masz problem. > osobiście nic takiego nie robiłem i osobiście uważam, że to kiepski > pomysł, ale technologicznie nie widzę problemu by to zrobić. [...]
Dlaczego kiepski? Ja tak mam zrobiony trigger w pl/perlu który wysyła mail w przypadku zmiany statusu pewnych rekordów lub pojawieniu się nowych. Działa to sprawnie, nie ma żadnych problemów. Fakt faktem, mogły by powstać nieścisłości w przypadku większych transakcji i ewentualnego ROLLBACK (wysłanego maila nie ROLLBACK'ujesz ;), jednak w moim naprawdę prostym INSERT/UPDATE ta procedura spełnia swoje zadanie bardzo dobrze.
-- ..:: Piter // phlawski$gmail,com // gg: 4534287 ::. Chuck Norris ostatnio zapisał się na lekcje karate dla początkujących, żeby móc "przypadkowo" spuścić manto małym dzieciom
T. - 15-06-2006 00:33
> hubert depesz lubaczewski wrote: > > > T. wrote: > >> Czy udało komus sie kiedys powiązać bazę danych PostgreSQL z jakimkolwiek > >> systemem pocztowym na zasadzie: pojawia sie określony rekord w bazie > >> danych, wtedy jest wysyłany okreslony tekst pod wskazany adres mailowy. > >> Będe bardzo wdzięczny za pomoc. > > > > może powiedz jaki masz problem. > > osobiście nic takiego nie robiłem i osobiście uważam, że to kiepski > > pomysł, ale technologicznie nie widzę problemu by to zrobić. > [...] > > Dlaczego kiepski? Ja tak mam zrobiony trigger w pl/perlu który wysyła mail w > przypadku zmiany statusu pewnych rekordów lub pojawieniu się nowych. Działa > to sprawnie, nie ma żadnych problemów. > Fakt faktem, mogły by powstać nieścisłości w przypadku większych transakcji > i ewentualnego ROLLBACK (wysłanego maila nie ROLLBACK'ujesz ;), jednak w > moim naprawdę prostym INSERT/UPDATE ta procedura spełnia swoje zadanie > bardzo dobrze. > > -- > .:: Piter // phlawski$gmail,com // gg: 4534287 ::. > Chuck Norris ostatnio zapisał się na lekcje karate dla początkujących, żeby > móc "przypadkowo" spuścić manto małym dzieciom
ale wsyła tylko na jeden mail ? chodzi mi o to ze jezeli nastapi okreslone zdarzenie w bazie, czyli trafi tam odpowiedni rekord to klient zostanie o tym poinformowany. Oczywiscie chcialbym aby byly dwie zmienne, adres pocztowy w zaleznosci od klienta i w standardowym tekscie zmiana nazwy towaru. Czyli system pocztowy jako tako nie jest potrzebny, wystarczy napisac okreslony trigger ?
T. >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Piotr 'piter' Hlawski - 15-06-2006 00:34
T. wrote:
> ale wsyła tylko na jeden mail ?
Nie, w zależności od pewnych warunków na jeden insert/update generuje jeden lub dwa maile do określonych osób
> chodzi mi o to ze jezeli nastapi okreslone > zdarzenie w bazie, czyli trafi tam odpowiedni rekord to klient zostanie o > tym poinformowany.
oczywiście o to też mi chodziło ;)
> Oczywiscie chcialbym aby byly dwie zmienne, adres > pocztowy w zaleznosci od klienta i w standardowym tekscie zmiana nazwy > towaru. Czyli system pocztowy jako tako nie jest potrzebny, wystarczy > napisac okreslony trigger ?
Potrzebny jest trigger i potrzebny jest jakiś sposób wygenerowania maila i wysłania go. Ja użyłem Perl'a i modułu Mail-Sender w którym można skonfigurować jakiego SMTP będzie używał. Tutaj zasadniczo jest dowolność, równie dobrze można słać mail'e mutt'em (+ nbsmtp jeśli się nie ma na maszynie z bazą SMTP) i mieć np. ustawiony konfig dla użytkownika z jakim chodzi postgres (.muttrc):
set sendmail="/usr/local/bin/nbsmtp -h host_smtp -f user@from"
-- ..:: Piter // phlawski$gmail,com // gg: 4534287 ::. Kiedy Chuck Norris uprawia sex z facetem, to nie dlatego, że jest gejem. To dlatego, że skończyły mu się kobiety.
Antoni Jakubiak - 15-06-2006 00:34
>>> osobiście nic takiego nie robiłem i osobiście uważam, że tokiepski >>> pomysł, ale technologicznie nie widzę problemu by to zrobić. >> [...] >> >> Dlaczego kiepski? Ja tak mam zrobiony trigger w pl/perlu który wysyła mail w > > ale wsyła tylko na jeden mail ? chodzi mi o to ze jezeli nastapi okreslone > zdarzenie w bazie, czyli trafi tam odpowiedni rekord to klient zostanieo tym > poinformowany. Oczywiscie chcialbym aby byly dwie zmienne, adres pocztowy w > zaleznosci od klienta i w standardowym tekscie zmiana nazwy towaru. Czyli > system pocztowy jako tako nie jest potrzebny, wystarczy napisac okreslony > trigger ?
Tak.
Pomysłe jest kiepski bo: 1. Istnieje wzorzec projektowy MVC. Umieszczanie logiki biznesowej w bazie danych jest zawsze zlym pomyslem. 2. Wysyłanie e-maila może być czasochłonne, więc powinno być asynchroniczne. 3. Wysyłanie e-maila może być zawodne, więc powinno niepowodzenie powinno być zalogowane.
Antek
slawekj - 17-06-2006 00:32
> ale wsyła tylko na jeden mail ? chodzi mi o to ze jezeli nastapi okreslone > zdarzenie w bazie, czyli trafi tam odpowiedni rekord to klient zostanie o > tym > poinformowany. Oczywiscie chcialbym aby byly dwie zmienne, adres pocztowy > w > zaleznosci od klienta i w standardowym tekscie zmiana nazwy towaru. Czyli > system pocztowy jako tako nie jest potrzebny, wystarczy napisac okreslony > trigger ? > T.
a nie zabierasz sie za to od złej strony? Z opisu wygląda to jak składanie zamówień. Jeśli tak, to czy nie lepiej aby kwestię poinformowania Klienta obsłużył skrypt lub program który łączy się z bazą aby wykonać polecenie do bazy? Wydaję mi się że tak powinno się to robić a nie aby baza tym się zajmowała.
Pozdr. Sławek
Grzegorz - 18-06-2006 00:44
slawekj napisał(a): > a nie zabierasz sie za to od złej strony? > Z opisu wygląda to jak składanie zamówień. > Jeśli tak, to czy nie lepiej aby kwestię poinformowania Klienta obsłużył > skrypt lub program który łączy się z bazą > aby wykonać polecenie do bazy? > Wydaję mi się że tak powinno się to robić a nie aby baza tym się zajmowała.
Wlasnie.
Wydaje sie, ze o wiele lepiej byloby, aby operacja na rekordzie nie wysylala listu, tylko wstawiala odpowiedni rekord (adres, tresc, data i co tam jeszcze trzeba) do innej tabeli/bazy.
A inna aplikacja (sluzaca do wysylania listow i swiadoma wszystkich niebezpieczenstw z tym zwiazanych (bledny adres, niemoznosc polaczenia sie z serwerem SMTP, zostanie wpisanym na liste spamerow, itp.)) bedzie wysylac sobie te listy ,,w tle'', nie blokujac pracy bazy.
-- Grzegorz
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
postgresql - int/int
postgresql Select count(*) czy raczej Select count(ID)
[PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?=
[postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?=
[postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?=
[PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?=
Postgres - replikcja master-master
Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL]
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
=?ISO-8859-2?Q?[psql]_Polskie_t=B3umaczenie_?= =?ISO-8859-2?Q?licencji_BSD_dla_PostgreSQL=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plponland.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|