Vpopmail’e gelen mailleri PHP ile okumak

Çarşamba, Ocak 20, 2010 21:56

Vpopmail domainlerinize gelen mailleri okumanız için “.qmail-default” veya “.qmail” dosyasında bir script çalıştırabilirsiniz. Bu dosya vpopmail ile oluşturulmuş domain dizini altında bulunmakta. (Örn. “/home/vpopmail/domains/mydomain/” dizini altında..)

.qmail-default dosyası temel olarak şu yapıda olur:

| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox

Eğer user@mydomain.com adresini catch all olarak tanımlamak istiyorsanız şu şekilde bir .qmail-default dosyasına ihtiyacınız var (eğer qmailadmin kullanıyorsanız arayüz kullanarak catch all vb işlemleri yapabiliyorsunuz):

| /home/vpopmail/bin/vdelivermail '' user@mydomain.com

Gelelim kendi hazırladığımız bir scripti nasıl çalıştıracağımıza. Bunun için dosyamıza şöyle bir satır eklememiz gerekiyor.

| /script/yolu

Bu şekilde bir satır eklediğiniz de, mydomain.com hesaplarına mail geldiğinde scriptiniz çalışacaktır.

Gelelim Php ile gelen mailleri okumaya. Ben gelen mailleri direk alıp bir dosyaya yazdırıyorum:

// php://stdin girdi parametresi ile girdileri okuyoruz.
$oku = fopen("php://stdin", "r"); 
if(!$oku) // okuma basarisiz mi diye kontrol ettiriyoruz
{
    // basarisiz ise hata yazdiriyoruz.
    file_put_contents('/home/deneme.txt',"###HATA###",FILE_APPEND);
}
$icerik = $oku; // email içeriğini değişkene atıyoruz.
fclose($oku);
 
// İçeriği dosyaya yazdırıyoruz.
file_put_contents('/home/deneme.txt',$icerik,FILE_APPEND);

Artık elimizde tüm mail bilgilerini (header,body vs..) bir dosyaya aktaran php script’imiz mevcut.

Burda dikkat edilmesi gereken hususlar şunlar:

  • Php scriptimiz çalıştırılabilir olmalı.
  • Scriptimizin başında #/usr/bin/php ibaresi olmalı (vpopmail scripti bu parametre ile çalıştırıcak)
  • Deneme.txt dosyamız yazılabilir izinlere sahip olmalı.
Yorum yazabilir, veya sitenize geribildirim koyabilirsiniz .

Yorum yazın