PHP e-posta gönderdikten sonra asmak 'için neden windows posta göndermek

4 Cevap php

biz bir web uygulaması oluşturmak için başlıyoruz. Benim meslektaşım linux üzerinde gelişiyor ve ben windows xp çalıştıran bir WAMP yığını üzerinden çalıştırıyorum. Biz Zend kullanarak ediyoruz.

Biz formu ve Zend e-posta kullanarak bir e-posta göndermek, e-posta göndermek istiyorsunuz ve linux makinede uygulama normalde devam edeceğini puanlık sonra, boş bir ekran olsun istiyorum.

Yani PHPMailer kullanır kendi küçük script, mail.php 'yi yazdı - ve aynı şey daha sonra boş bir ekran e-posta gönderir, olur, ve. Yani biz var:

if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}

Yani hiçbir hata e-posta gönderir, rapor, ancak ekran (ya da başka bir şey, çok normal HTML) yazdırır asla "Mesaj gönderildi" var.

Çok teknik değilim, bu yüzden almak için bariz hata ayıklama adımlar vardır özür dilemek varsa. Ben cevapsız pencere php config özgü bir şey var mı?

Bu kimlik ile bir off-site SMTP sunucusu bulunuyor.

4 Cevap

Bu cevap çok uzun sürdüğü için özür dilerim. Sorun giden SMTP trafiği engelleme ofiste bir güvenlik duvarı neden oldu. Ben hiçbir şey iade neden olarak hala emin değilim - ama vb geçersiz smtp için php hataları test edildi bu ofis dışında ince döndü. Sadece bir ağda izin uygun bağlantı noktalarını alma olgusu.

Teşekkürler yardım için herkes.

Eğer bir hata alıyorum, ama sadece onu görmeye değil gibi geliyor. Emin kodunuzda bu bir yere sahip olun

ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

Ve de 500 hataları için apache günlükleri inceleyin.

PHP kendi hata günlüğü, orada şüphe kontrol vardır. Bunu çalıştırarak bunu bulmak gerekir

<?php
phpinfo();
?>

Bu PHP Core bölümünde yer olmalıdır - bu boş ise, php.ini dosyasını düzenlemek ve log_errors açın ve dosya olmak istediğiniz yeri belirtin.

Hatalar Ben bu kullanarak bulduk görüntülemek için alamadım.

UPDATE

Biraz araştırma yaptım ve () işlevi belgelere göre Zend_Mail aslında PHP'nin posta için bir sarıcı olduğunu görünüyor: http://framework.zend.com/manual/en/zend.mail.html

Bunu göz önüne aldığımızda (bu yazının yazıldığı gibi) SendMail sayfada http://www.php.net/manual/en/ref.mail.php ilk yorum ilişkin bakmak istiyorum gidiyoruz PHP kılavuzda PHP'nin mail () işlevi hakkında bazı bilgiler var var hepsi * nix sunucu gibi davranmaya WAMP sunucusu yapılandırma ile ilgili detaylar - en azından bildiğim kadarıyla posta () işlemleri gitmek gibi ;-)

Bir windows kutusu (benim dev makine) başarı ile PHPMailer kullanın. Ben kurulum kodunu görebilirsiniz? Ben aşağıda gibi bir şey yapmak. Bir şey size ssl kullanıyor iseniz emin openssl modülü php yüklü yapmak gerekir. Aşağıda bir göz atın. Lütfen SMTPDebug bayrak ile çalışmak bazı çıkış için ayarlanmış olduğundan emin olun.

<?php

$mail             = new PHPMailer();

$mail->IsSMTP();
$mail->Host       = "blah.com";
$mail->SMTPDebug  = 1;
$mail->SMTPAuth   = true;
$mail->SMTPSecure = "ssl";
$mail->Host       = "mail.blah.com";
$mail->Port       = 465;
$mail->Username   = "noreply@blah.com";
$mail->Password   = "smtppass";

$mail->SetFrom('noreply@blah.com', 'Blah Name');
$mail->AddReplyTo("noreply@blah.com", "Blah Name");
$mail->Sender = "noreply@blah.com"

?>