Nasıl benim localhost için smtp_port anlamaya?

6 Cevap php

Ben e-postalar gönderen bir komut dosyası kullanıyorum ve aşağıdaki 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 C:\wamp\bin\php\php5.3.0\PEAR\Mail\mail.php on line 125

Benim için localhost stmp_port nasıl anlamaya?

EDIT:

Ben üzgünüm. Benim bilgisayarda kendi sunucusu yok ve ben ikisinden biri kurmak istediğini sanmıyorum. Ben ne alır Realiza vermedi. Ama bir hosting sağlayıcısı var ve herkes bunu bilir eğer rağmen benim posta göndermek için kendi smtp bilgilerini nasıl kullanılacağını anlamaya istiyorum.

Nathan Adams cevabına göre, benim hosting sağlayıcınızın SMTP bilgileri kullanabilirsiniz. Tam olarak öğrenmek için gerekenler nelerdir nereye koyacağım benim php.ini dosyasındaki bilgiler?

6 Cevap

Bu bilmeniz gerekenler liman değil sadece. Siz de smtp mail sunucusunun adresi ne olduğunu bilmeniz gerekir.

SMTP için diğer e-posta konfigürasyonu gibi baz. en azından bilgi 4 parça gerekir:

  1. SMTP sunucusu, örneğin mail.example.com
  2. SMTP Liman [25 ve 110 en yaygın kullanımı vardır]
  3. Kullanıcı adı örneğin foo@domain.com
  4. Şifre

Kod olmazsa bu gibi görünüyor.

$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";

$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'port' => 25
    'auth' => true,
    'username' => $username,
    'password' => $password));

Eğer gmail hesabınız üzerinden e-posta göndermek için kolay olabilir - see here

Bir SMTP sunucusu çalıştırıyor olmanız gerekir, aksi takdirde bir başkasının (senin ISS'ler, hosting sağlayıcıları vb) için php.ini içinde SMTP ve smtp_port ayarlamanız gerekir.

Bir SMTP sunucusu yüklü mü? Çalışıyorsa? Size ne platformu emin, ancak komut satırından "netstat-a" komutunu çalıştırın ve "DİNLEME" durumu için bakabilirsiniz pencerelerde değil

Bir SMTP sunucusu bağlantı noktası 25 üzerinde dinleme yoksa o şansı bir SMTP sunucusu çalışan yoktur vardır. Sadece çok özel senaryolar altında bir SMTP sunucusu farklı bir port üzerinden dinlemek için yapılandırılmış olacaktır.

Size cevap özgün soru, "duruma göre değişir" dir. Bu (sunucu tarafında) SMTP için kullandığınız yazılım ne bağlıdır. Ben "bazı" bağlantı noktası üzerinde çalışan "bazı" SMTP sunucusu olup olmadığını görmek için kolay bir çözüm olduğundan emin değilim.

Eğer yerel ana bilgisayarda bir SMTP sunucusu çalıştırıyorsanız, yüklü ve yapılandırılmış (ve ... Eğer bir port! = 25 aldı ki gerçekten tuhaf değil) olmalıdır, yani sadece size yüklü nerede olduğunu öğrenmek için yapılandırma dosyalarını okumak çalıştırmak için! Eğer yaparsanız, daha kolay gibi yapmak noktasını 25 kullanın: Bu konuda hiç duymadım eğer Daha büyük olasılıkla, size not herhangi bir SMTP sunucusu çalıştıran ve daha sonra seçim (ipucu bunu da muhtemelen konum ! -) or sizi karşılamak ve bu birine işaret PHP yapılandırmasını ayarlamak için istekli diğer bazı SMTP sunucusu bulmak.

Edit: şimdi size bir hosting sağlayıcısı konum bir yorumda söz ettik, o zaman tabii ki (başka bir şey olabilir, localhost olabilir) ne barındırma sağlayıcı sormalısınız ve bağlantı noktası (tüm bahisler kapalı!) onlar size SMTP hizmeti üzerinde veriyoruz.

PHP komut bir anonim sistemi kullanıcısı, yani 'hiç kimse' veya 'www-data' olarak çalışan bir very iyi bir şans var.

Birçok ev mailler istismarını önlemek için anonim kullanıcılardan port 25 (yerel) erişimi kısıtlamak. Sen gerçek domain bağlanmak ve önceki posta gönderirken kimlik doğrulaması için, bunun yerine, gerekebilir.

yani ne gibi SMTP sınıfı kullanarak localhost "" yerine "" mydomain.com "" 25 kullanabilirsiniz. mail () muhtemelen faydasız olacak.

Çift, bu onaylamak için ev sahibi ile kontrol, ama ben bu durumda sanıyorum.