Neden bu PHP hata referans localhost nedir?

3 Cevap php

Ben benim yerel makinede ve ofiste bir sunucu üzerinde XAMPP koşuyorum. Hem Windows makinelerdir.

I mail() bir form e-posta göndermek için kullandığı bazı kod yazıyorum. Varsayılan olarak, e-posta göndermek için sendmail.exe (ki XAMPP ile birlikte gelir) kullanır. Tüm durumlarda, posta aslında Exchange sunucusu olan üçüncü bir makina aracılığıyla gönderilir.

Benim yerel makineden, PHP gayet posta gönderebilirsiniz. Sunucuda, form gönderme üzerine bu hatayı alıyorum:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp___port" setting in php.ini or use ini_set() in

... Benim dosya izledi.

I don't understand why it's referencing "localhost." Nowhere php.ini veya sendmail.ini "localhost" kullanılmıştır gelmez - Ben posta sunucusunun adını kullanın. Her iki makinelerde kullanılan SMTP bilgiler aynıdır.

Bildiğim kadarıyla söyleyebilirim, iki ortamlarda ortak önemli şeyi var:

  • Php.ini dosyalar aynıdır
  • Sendmail.ini dosyalar aynıdır
  • Her iki makine yüklü XAMPP aynı sürümüne sahip
  • Aynı toplu komut dosyası hem de makinelerde çalıştırmak ve başarılı sendmail.exe üzerinden e-posta göndereceğiz

Eminim o güncellenmiş yapılandırma dosyaları kullanıyor olmak için birkaç kez durdu ve Apache başladı.

Ben yukarıdaki hatası alıyorum, ben günlük dosyası bana koşmak asla düşündürüyor sendmail.exe, tarafından üretilen olduğunu fark.

Ne eksik?

Solved

Benim sorunum ben c:\xampp\php\php.ini kullandığını düşündüm oldu, ama aslında c:\xampp\apache\bin\php.ini kullanıyordum. Bu açık olmalıydı ve ben daha önce benim yerel makinede doğru dosya editörlüğünü yapmıştı, ancak sunucu üzerinde değişiklik yaparken nedense kafam karıştı.

php_info() yapılandırma dosyası yüklendi bana gösterdi, ve ben doğru bir düzenlenebilir kullanma. Şu an çalışıyor! Yardımlarınız için teşekkürler herkese.

3 Cevap

Sayfanızda phpinfo() bir çağrı ekleyin ve kontrol etmelidir:

  • PHP komut doğru php.ini kullanıyor
  • SMTP ini ayarları (Phpinfo tablolarda gösterilen) doğru olup olmadığını kontrol edin.

Sunucuda bu kodu kullanmayı deneyin:

ini_set("SMTP","smtp.example.com" );
ini_set('sendmail_from', 'user@example.com');

Ben de bunu yapmak vardı - sendmail.ini gönderilen gerekir:

Sizin sendmail.ini C bulunur edilmelidir: \ xampp \ sendmail \ sendmail.ini.

Sen sadece burada 3 değişkenleri ile endişe gerekir:

1.smtp_server
2.auth_username
3.auth_password

Detaylar burada: Send mail and xampp

Bill H