2016-04-04 20 views
-1

smtp ile e-posta göndermek için hızlı posta kullanan bir komut dosyası yazdım. Smtp gönderimi nedeniyle komut dosyasının yüklenmesi oldukça uzun sürüyor.PHP SMTP üzerinden E-Posta gönderme çok yavaş

Bu e-postanın gönderilmesini ayrı bir dosyaya koymanın iyi bir fikir olacağını düşündüm. Şimdi sahip olduğum tek sorun, dosyayı açmam gerektiğidir.

Fopen veya bunun gibi bir şey kullanmak istemiyorum çünkü bu dosyanın "arka planda" çalışmasını istiyorum.

Bu bir cronjob olmadan mümkün mü? Kullanıcı dosyayı fark etmeden sadece bu dosyayı kovmanın bir yolu var mı?

Şimdiden teşekkürler.

+0

Olası kopyası [Bağlantıyı kapattıktan sonra işlemeye devam et] (http://stackoverflow.com/questions/4806637/continue-processing-after-closing-connection) – omnichad

cevap

2

Komut satırını arayarak bunu exec kullanabilirsiniz

exec('php script.php >/dev/null 2>&1 &'); 
+0

Teşekkür ederiz. Thats mükemmel çalışıyor. – Dennis

0

başka seçeneği (Eğer düşük trafik varsa) çalıştırma hakkında

Kötü şey bir cron komut dosyası ve kuyruk tablosu sahip olmaktır php php arka plan işleri hizmet riskinin reddedilmesidir. Cron her 2 dakikada bir çalışabilir, başka çalışan örneklerini öldürebilir ve posta kuyruğunu işleyebilir. Arka plandaki işleri, yeni süreçler oluşturarak çalıştırmak risklidir. Ve hatırlamalısınız - kullanıcı tanımlı değişkeni asla bir arka plan sürecine geçirmeyin.

+0

cron istemediğini söyledi. DoS'in onunla ne ilgisi olduğundan emin değil. ve tabii ki kullanıcı tanımlı değişkenleri arka plan komut dosyasına ayırabilirsiniz, sadece ilk önce onları düzenleyin, –

+0

Evet, "cron istemiyor" konusunda haklısınız. Ama bence cron kontrollü bir işe sahip olmak, kullanıcılara binlerce exec çekmemek için güvenmek daha iyidir. Ve sanitasyonla ilgili bir problem - eğer bir ekibiniz varsa (veya yardım etmek isteyen bir arkadaşınız varsa) ve bir kişi de sanitasyon yapmayı unutursa. – strangeqargo

+0

lol, herhangi bir kullanıcı tarafından sağlanan bilgileri veritabanına eklemezsiniz. –