Editörden
.: Osman GÜYÜM
pgMail | Ana Sayfa |
| Haberler |
| Editörden |
| Videolar |
| Forum |
| Linkler |
| Arama Yap |
| Bize Ulaşın |
| Ziyaretçi Defteri |
![]() |
![]() |
![]() |
![]() |
| pgMail |
|
|
| Yazar Osman GÜYÜM | ||||
| Monday, 17 September 2007 | ||||
Veritabanı sunucusunun yeteneklerini kullanarak mail göndermek, gerek ticari gerekse de müşteri veya aboneleri ile etkileşimli iletişim kurmak isteyen işletmeler için işleri kolaylaştıran çok faydalı bir seçenektir.PostgreSQL kullanıcıları faydalı uygulama kolaylığına sahip olmayabilirler. Çünkü PostgreSQL kurulumunda böyle bir özellik gelmemektedir. Ancak açık kaynak kod dünyasının bizlere sağlamış olduğu imkanlar dahilinde üçüncü parti yazılımlar ile bu ihtiyacı gidermek mümkün. http://sourceforge.net/projects/pgmail/ adresinden ulaşabileceğiniz pgMail, şu anda bu konuda ki eksikliği kapatan tek proje. PgMail, TCL (tickle olarak okunmaktadır) programlama dili ile yazılmış, text tipinde 4 parametre alan (kimden, kime, konu, mesaj) ve TCL soket üzerinden mail server ile iletişime geçip, mailinizin gönderilmesini sağlayan bir PostgreSQL veritabanı sunucusu fonksiyonudur. pgMail i kullanabilmek için, TCL programlama dilinin, PostgreSQL için olan uzantılarının kurulu olduğuna emin olmakta fayda var. Aksi takdirde hata mesajları ile karşılaşmak kaçınılmaz olur. pgMail i kullanmak için öncelikle TCL/u prosedürel PostgreSQL dilini eklemeniz gerekmektedir. TCL/u, TCL programlama dilinin veritabanı fonksiyonları için kullanılabilir halidir. # createlang pltclu <database> Store procedure eklenecek veritabanı ismini <database> alanında belirtmek gerekmektedir. Aşağıdaki “pgmail.sql” dosyası da veritabanına eklenmelidir. Herhangi bir arayüz programı ile de bu fonksiyonu oluşturmak mümkündür. # psql -e [database] < pgmail.sql pgmail.sql create function pgmail(text, text, text, text) returns int4 as ' set mailfrom $1 set mailto $2 set mailsubject $3 set mailmessage $4 set myHost "<MAIL SERVER IP ADERSİ>" 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 <VERİTABANI SUNUCUSUNUN IP ADRESİ >" 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'; Son olarak, pgMail fonksiyonunun kullanımı aşağıdaki gibidir. select pgmail('Kimden < Bu mail adresi spam botlara karşı korumalıdır, görebilmek için Javascript açık olmalıdır >','Kime < Bu mail adresi spam botlara karşı korumalıdır, görebilmek için Javascript açık olmalıdır >', 'Konu Basligi','Mesajınız')
. : : Yorum yazabilmek için Lütfen Sisteme Giriş Yapın veya Kayıt Olun : : . |
||||
| < Önceki | Sonraki > |
|---|