PHP System_Daemon ve IMAP bağlantısı ile ilgili sorunlar

1 Cevap php

Ben bir IMAP sunucusuna bağlanır ve onlar çalışmaya yakın o var içeri olarak e-postaları işler bir PHP cini oluşturmak için çalışıyorum, ama cin ilk kez cini yüklenen bulur orijinal e-postaları kapma tutar. Ben üst süreçte IMAP bağlantı açıyorum çünkü nedeni olduğuna inanıyorum. Örnek aşağıda:

if ($imapConnection=imap_open($authhost,$user,$pass) or die())
{
  //start daemon
  while()
  {
    //Grab email headers 
    $imapHeaders = imap_headers($imapConnection);
    $count = sizeof($imapHeaders)

    //loop the emails
    for($i = 1; $i <= $count, $i++)
    {
      //process the email
      //delete the email
    }

    System_Daemon::iterate(15);
  }
}   
imap_close($imapConnection);

Ben döngü içinde IMAP bağlantısı koyarak uzak kalmak istiyorum. Nasıl döngünün dışında IMAP sunucusuna bağlantı tutmak ve hala yeni e-posta alabilirim?

1 Cevap

IMAP, posta sunucusunda kalır. Yani her zaman size bunları açıkça kaldırıldı varsa, eski e-postalar hala orada, gel. Bu e-postaları işleme önlemek için, daha önce tedavi postaların miktarını tutan bir var olabilir, bu yüzden = 0 $ i gidebiliriz (son geldi sözde) için $ i < $ Var postaların sayısının açılımı $ var zaten tedavi.

EDIT:

Eğer imap_delete tarafından postaları silmek yana, her döngü bir imap_expunge yapmak.

EDIT 2:

Imap_reopen kullanın, ben her döngü sonra imap_reopen($imapConnection, "{domain.tld}INBOX"); kullanarak benim sunucuda size komut denedim ve şimdi yeni postaları görür. Yeni bir kimlik doğrulaması yapmak sadece akışı hareket etmez.