PHP posta sorunu

7 Cevap php

Bir kullanıcı şifresini sıfırlamak için gerekiyorsa, o linke tıklayın ve yeni bir rasgele oluşturulan şifre onun gelen kutunuza gönderilecektir benim şirket web sitesinde bir parola sıfırlama işlevselliğini uygulamak çalışıyorum.

Ben PHP mail() function kullanıyorum. Şimdi, ben bir Ubuntu makinasına PHP5 çalıştırıyorum. Php.ini ben 25 olarak posta sunucusu ve smtp_port çalışan makinenin IP olarak SMTP ilan etmiştir Dahası, ben noktası 25 mailserverların telnet ve bir e-posta göndermek için çalıştık -. O (benim iş terminali Windows içindir çalışır) .

mail() mail() döner true sonunda yaklaşık 1 dakika boyunca asılı çağıran PHP komut - problem alınan posta / gönderiliyor olmasıdır.

PHP ile, Ubuntu ile, mailserverların veya koduyla - kötü yanı ben sorun burada yatıyor bile bulmak için nasıl fikirleri olmamdır!

Biri lütfen yardım edebilir?

7 Cevap

Geçenlerde php.ini bakmadım, ama bu demek değildir:

[mail function]
; For Win32 only.
;SMTP =

Vurgu For Win32 only.

Yerine PEAR::Mail bakmak isteyebilirsiniz. Pear.php.net aslında yanıt zaman olmasıdır.

Eğer mail.err ve mail.log dosyaları kontrol edebilirsiniz?

Sizin e-posta sunucusu muhtemelen kimlik doğrulaması (- Doğrulanmış SMTP "SMTP öncesi POP" veya ASMTP) ihtiyacı vardır. Eğer muhtemelen yakın zamanda Windows makineden e-postanızı kontrol ettik beri, IP adresiniz doğrulanmış ve kısa bir süre için e-posta göndermek için izin verilecektir: Ubuntu makineden, muhtemelen değil.

PHP zaten e-posta göndermek için nasıl çalışmak gerekir: Eğer SMTP sunucusunun IP adresini kullanmayınız eğer Ubuntu makinede, bkz. Aksi takdirde, size e-posta sunucusu kimlik doğrulaması ve PHP içine uygulamak için öğrenmek gerekir.

Kabuk posta programı ile bir e-posta göndermek için çalışın. İşe yarayıp yaramadığını ilk bakın.

Sizin ISP sorun olabilir. Liman 25 sıklıkla kitle spam engellemek için ISS'ler tarafından engellendi. Standart olmayan bir port değiştirmeyi deneyin ve görmek eğer yardımcı olur.

Edit: Ve here sorunu ayrıntılarıyla şey (onların çözümü ISS posta sunucusuna geçişine olmasına rağmen, bağlantı noktalarını değiştirmek değil).

Bu aptal beyinsiz php uygulama Unix üzerinde SMTP portları ile çalışmıyor çünkü Örneğin Zend Framework SMTP posta sınıf gerekir.

PHP Çekirdek posta listesine abone ve bu konuda şikayet Lütfen - belki daha fazla insan geliyor eğer bunu değiştirmek ve gördükleri herkes ne sendmail.

Bu mail kütüphanesi kullanarak php mail () fonksiyonunu bypass de mümkündür. Örneğin SwiftMailer (http://swiftmailer.org/) Bu güvenli e-postalar (düz / html) göndermek için gerçekten iyi bir sınıftır.

Bu sınıf, bir SMTP sunucusuna doğrudan bağlanmak mümkün ve böylece sunucu yapılandırmasını atlayarak.