Sorun PHP Posta

6 Cevap php

How can I check a problem with mail being sent on my server? I run a simple test:

if(mail($to, $subject, $message)) {
echo 'Mail Sent';
}

hangi testi metni çıktılar; ama, hiçbir posta şimdiye geldi.

Nasıl sorunu izini hakkında gidebilir?

6 Cevap

Bu oldukça uzun bir hikaye. Birkaç mermi noktaları () (bu posta varsayılarak doğru döner ve hiçbir hata hata günlüğüne vardır):

  • Gönderici adresi ("Kimden"), sunucu üzerinde bir etki alanına mı ait? Değilse, o kadar yapmak.
  • Bir kara liste üzerinde sunucu (örneğin spamhaus.org üzerine IP kontrol) mı? Bu hosting ile uzak bir ihtimaldir.
  • Postalar bir spam filtresi tarafından filtre edilir? Bir spam klasörü vardır bir freemailer ile bir hesap açın ve öğrenmek. Ayrıca, bir spam filtresi olmadan bir adrese mail göndermeyi deneyin.
  • Muhtemelen bir gönderici adresi eklemek için posta beşinci parametre "-f" () ihtiyacım var? (PHP kılavuzda) komutu (mail bak)
  • Eğer log dosyalarını erişiminiz varsa, yukarıda önerildiği gibi, elbette bu, kontrol edin.
  • Address olası sıçrama postalar için ("gönderene geri döndü"): Eğer "dan" kontrol ediyor musunuz? Sen ayrı bir "hata" e-adresi kurabilirsiniz.

Almanca konuşanlar için, ben yazdım oldukça ayrıntılı "ne için" bir süre önce bu konuda. Bkz here.

PHP manuel:

Return Values

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, **it 
does NOT mean the mail will actually reach the intended destination**.

Bir sonraki adımı atmaya nasıl emin, ama burada önemli bir nokta değil.

Myles ardından, bir Linux kutusu ise, komut satırında bunu:

# echo “Body text.” | mail -s “Hello world” you@example.com

Eğer bu e-posta almazsanız, o kutunun üzerindeki posta sistemi ile ilgili bir sorun var. Yani sorulan PHP soruya farklı bir sorudur.

Şimdi nedenlerle) (yanlış olduğunu postayı döndürür varsayarak belirsiz - - tüm sorun giderme başarısız olursa () tamamen mail atlayacak ve SMTP üzerinden doğrudan bağlanmanızı sağlar ve geniş bir sunar PHPMailer gibi bir mail script anahtarı hata ayıklama modu. Bu şekilde, bir çalışma çözümü kurmak ya muktedir ya da sorunun özünü bulmak gerekir.

Ben başlamak istiyorum ilk etapta sonra PHP hata günlüğü, sendmail günlüğü. Ayrıca komut satırından Sendmail'in deneyin ve posta göndermek için doğru kurulum olduğundan emin olmak için PHP yapılandırmasını denetleyin.

Burada canlı bir web sunucusu üzerinde çalışan, ya da bir kişisel gelişim sandbox çizgisinde bir şey daha var mı? (Yani, ev makine?) Bu ikincisi ise, benim ISS (Cox) benim Giden posta portu filtreleme ile geçmişte sorunları çok yaşadım söyleyebilirim. (Onlar böyle yapmazsanız size söyleyeyim, ama ben certain yaparlar.)

Ben de did onlar bana teslim edilmeden önce o ile gün boyunca Cox posta biriktirme yakalanmak yapmak bazı giden mesajları aldım.

Ben bu faydalı olur.