Bu php bu infaz tamamlandıktan sonra PEAR kullanarak bir SMTP bağlantısını perssist mümkün mü?

3 Cevap php

Ben gördüğünüz gibi, armut sadece komut dosyası yürütme sırasında bağlantı, o bültenleri devam ...

3 Cevap

Hayır, sadece send () yöntemi birden aramaları üzerinden devam edebilir.

Sorununuzu iki yolu vardır:

  1. Bağlantı havuzu
  2. Bir arka plan işlemi için işten geçmek

Dürüst olmak gerekirse, doğrudan PHP web isteği e-posta göndermek için bir neden neredeyse hiç yoktur - e-posta zaten düşük gecikme olması garanti değil, bu yüzden arka planda e-posta göndermek için biraz daha uzun sürerse, bu büyük bir anlaşma değil edilir.

Gibi, en iyi ve en basit yaklaşım, hızlı, yerel depolama (beanstalkd gibi belki iş kuyruğu) için e-posta depolamak ve daha sonra tamamen ayrı bir süreç çalışması için bu kuyruğu kontrol ve gerçek SMTP isteği görevi ele sahip basitçe . Bu uzun süren komut dosyası bile, açık tek bir SMTP bağlantısı varsa lütfen tutabilir.

En iyi çözüm, sendmail, postfix veya Qmail gibi bir MTU yüklemek ve daha sonra yerel olarak size posta göndermek için, bu bağlantı havuzu ya da bir arka plan cini karışıklık zorunda kalmadan mümkün olan en az senaryo üzerinde bağlantı gecikme düşürecektir.