Ben (öncelikle gmail hesaplarına erişmek için kullanılacak) bir çıplak kemikleri web posta istemcisi oluşturmak için PHP IMAP fonksiyonları inşa kullanıyorum. Ben şu anda tarihi (artan veya azalan) olanlar bu posta kutusundaki iletilerin bir paginated listesini görüntüleyen ediyorum kutusu liste görünümlerinde, bir yol blok isabet ettik.
Benim ilk uygulama imap_headers ile posta kutusu () TÜM iletileri alınan ve tarihe dayalı bu diziyi kriteri, daha sonra kullanıcı görmek istediği listenin geçerli sayfaya karşılık dizinin segmenti döndü. Bu iletilerin az sayıda posta kutuları için Tamam çalıştı ama performans (~ 600 mesajları ile bir posta kutusu için, yürütme süresi yaklaşık 10 saniye ortalama olarak) büyüdü posta kutusu büyüklüğü gibi büyük ölçüde azalmıştır. Ve bu istemci bazı kullanıcılar için, 600 mesajları kendi gelen bazı kolayca 5 bin ila 10 mesajlarla, bir posta kutusu için küçük bir sayıdır.
Yani sorun benim ikinci bıçak yerine posta kutusundaki tüm iletilerin başlıklarını almak, ben imap_num_msg ile iletilerin toplam sayısını () var ve ben inşa ettiği numarasını kullanarak oldu döngü sayacı olarak kullanılan döngü, bir ileti numarası. ve her yineleme için ben bu mesaj numarası ile () imap_headerinfo diyoruz.
Bu iyi çalışır, ancak ben mesaj numarası bu mesaj ve aldıkları zaman doğrudan karşılık geldiğini izlenim altında oldu, böylece ileti yok. 1 eski mesaj oldu, ve imap_num_msg (tarafından döndürülen sayı) yeni mesajın mesaj numarası oldu. Yani hala benim paginated liste içinde tarihe göre sıralama sağlayabilir kullanarak. Ama test ettikten sonra bu mesaj numarası tarih alınan karşılık gelmiyor gibi görünüyor ve gerçekten ben atanmış oldukları nasıl hiçbir ipucu var.
Herhangi bir yardım veya yön büyük mutluluk duyacağız.