Windows üzerinde PHP ve mail () ile Sorun

4 Cevap php

Şu vea bir Elgg-web tabanlı hata ayıklamak çalışıyorum (bunu geliştirmek vermedi) ve yerel kalkınma makinede (WinXP) doğrudan e-postalar göndermek istiyorum. Apache 2.2.11 ve PHP 5.3.0 ile WAMP koşuyorum

Bazı arama yaptıktan sonra, ben geldim basit çözüm fake sendmail SMTP yoluyla hesabıma GMail / Google apps iletecek ve gönderme yapalım kullanıyor. Sorun hiçbir hataları almak olduğunu, ancak e-posta gönderiliyor değildir.

İşte ne yaptım:

  • Kopyalanan WAMP bir alt klasöre sendmail.exe ve sendmail.ini
  • Sendmail.ini yoluyla yapılveırılmış (yapılveırma ayarları ok)
  • Edited php.ini to add the path to sendmail.exe
    sendmail_path = "C:\Program Files\wamp\bin\sendmail\sendmail.exe -t"
  • Commented out the windows SMTP settings in php.ini
    ; SMTP = localhost
    ; smtp_port = 25
    ; sendmail_from = xxx@domain.com
    ; mail.force_extra_parameters =

Mail.log dosyası aşağıdakileri gösterir:

mail() on [C:\Program Files\wamp\www\mail.php:9]: To: xxx -- 
Headers: From: xxx  Reply-To: xxx  X-Mailer: PHP/5.3.0

Benim tahminim sorun varsayılan Windows seçeneği (sunucu değil sendmail programı belirtmek için) overriden olmadığını olmasıdır. In phpinfo() Ben hala onları yorumladı rağmen, SMTP -> localhost ve smtp_port -> 25 seçenekleri olsun.

Herkes bu çalışma almak başardı, ben gerçekten yardıma takdir ediyorum. Benim düşünceme göre, sahte sendmail kullanarak makineniz üzerinde bir posta sunucusunu yüklemeden çok daha basittir.

Teşekkürler!

P.S. I have to mail () işlevini kullveığınızda, çünkü PHPMailer ve benzeri tavsiye etmeyiniz. Bu Elgg nasıl çalışır.

4 Cevap

Ben sonunda işe aldım. Sorun olduğunu PHP had a bug (sendmail için) yolunda boşluk ile. Ini dosyalarını ayrıştırma. Bu sürüm 5.3.0 sabit, ama manuel bu konuda hiçbir bilgi vardı.

Yani, evet, Windows üzerinde PHP ile sendmail kullanmak mümkündür: D.

Zaman ayırdığınız için teşekkür ederiz!

Emin SMTP Hizmeti yerel makine üzerinde çalışan ve SMTP Port (25) açılmış olduğundan olduğundan emin olun.

Hizmetler (Çalıştır-> services.msc) bir kontrol var ve Posta Gönder Transferi için bakmak

If you cannot find SMTP on the services list, you must install it: To add, Run->appwiz.cpl->Add Remove Windows components->IIS->Details->SMTP

Bu kurulum oldu ben bu senaryolar yapmak için kullanılan bir şey değil olur ya eğer ben emin değilim, benim makinede görünüm ve pop e-postaları almak için ayarladığınız her 5 dakika ya da öylesine, bu şekilde benim ip / makine doğrulandı ben sadece set pop karşı ve eğer:

SMTP = localhost
smtp_port = 25

php.ini içinde, posta işlevi iyi çalıştı. Yani durumda sadece sizin bakış bir pop ile çalışmak ve php.ini bu smtp kullanmak ve umarım çalışması gerekir ayarlanır. Ben bu olsa Gmail olacaktır test sığınak.

P.S. Ben mail () fonksiyonunu kullanmak zorunda çünkü, PHPMailer ve benzeri tavsiye etmeyiniz. Bu Elgg nasıl çalışır.

...unless you're using a plugin that changes this behaviour:
http://community.elgg.org/pg/plugins/costelloc/read/16498/phpmailer