php mail () çalışmıyor değil windows 2003, SMTP IIS

5 Cevap php

bu alıyorum:

Sorun PHP Warning: mail () [function.mail]: SMTP server response: 550 5.7.1 c chris.mahan @ gmail.com için röle için açılamıyor: \ inetpub \ wwwroot \ mailtest.php hattında 12

Bu sayfa:

<?php
$to = "chris.mahan@gmail.com";
$subject = "test";
$body = "this is a test";

if (mail($to, $subject, $body)){
    echo "mail sent";
}
else {
    echo "problem";
}
?>

sunucuda php.ini gelen bölümü:

[mail function]
; For Win32 only.
SMTP = server.domain.com; for Win32 only
smtp_port = 25

; For Win32 only.
sendmail_from = support@domain.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

("Server" ve "etki alanı" gerçek sunucu ve etki alanı adını doğru bakın unutmayın)

IIS, SMTP çalışıyor. "Erişim" sekmesi altında, "Röle" düğmesi, bilgisayarlar bu sanal sunucu üzerinden geçişine olabilir Select "tek liste altında" onay kutusunun ayarlanır ve listede "127.0.0.1 (xxx.xxx.xxx.xxx)" dir (gerçek sunucu IP adresini temsil eden x adlı).

Sunucu tam 17:00 1 Eylül 2008 itibariyle yamalı Windows Server 2003 Service Pack 2, çalışıyor. Bunu (nasıl kontrol?) IIS7 çalışıyor varsayalım.

Herhangi bir fikir?

Cevabı içinde Espo: Bu makine bir datacenter barındırılmaktadır. Biz (uzaklaştır ki istiyoruz, bunu yaptıklarını) bir gmail hesabı kullanmak istemiyorum. Windows Server 2003, kendi SMTP sunucusu ile geliyor.

Güncelleme: Yaakov Ellis'in tavsiye Per, tüm geçiş kısıtlamaları düştü ve (sağlanan ters DNS düğmesini kullanarak) izin listesine sunucu IP eklenir ve bir şey çalışmaya başladı.

Bana yardım ettiğin için ESPO ve Yaakov hem teşekkürler.

5 Cevap

SMTP sunucusu Geçiş ve tüm röleler için açılması için IP kısıtlamaları kaldırmayı deneyin. Bu ayarlandığında çalışır, o zaman sorun orijinal kısıtlamalar ile yapmak zorunda olduğunu biliyoruz. Bu durumda, bir DNS sorunu olabilir, ya da belki de yanlış IP adresi listede vardı.

Sen yanlış SMTP-sunucusu kullanıyor. Eğer sadece gmail hesabına e-postalar göndermek için gidiyoruz eğer, benim cevap bakabilirsiniz here.

Eğer başka hesaplara e-posta göndermek için gerekiyorsa, SMTP-ayrıntılar için İSS'dan isteyin.

EDIT: Ben insanların, posta sıralarının izlenmesi patlatır kontrol ve posta yazılımını güncelleyerek sahip (olmalıdır) olarak ISS SMTP sunucusu kullanmak her zaman daha iyi olduğunu düşünüyorum. Eğer iş web uygulamaları geliştirmek ise bunu ne ile sopa ve diğer insanlar (örneğin posta sunucuları çalıştıran) onların şeyler yapalım hemen hemen her zaman en iyisidir.

Hala nedense size yerel SMTP sunucusu kullanmak istiyorsanız, ilk şey php-bölümünü ekarte etmek olacaktır. KB153119 folowing deneyin ve sonra da hataları size SMTPServer IISlog kontrol edin.

EDIT2: That KB-article says it is for exchange, but the same commands are used for other SMTP-servers (including IIS) as well, so please try and see if you can send mails using the examples from the article.

@ ESPO: Bunu yeniden KB153119 yapacağız. Teşekkürler.

Posta sunucusu hakkında: Seni duydum.

Ben daha fazla ortaya çıkarmak zaman güncelleme olacak.

@ Espo, söz konusu madde sunucuları değil, IIS7.0 SMTP sunucusu Exchange ilgilidir.

Özet: Bu makale, SMTP iletişim sorunlarını gidermek için Basit Posta Aktarım Protokolü (SMTP) hizmeti çalışan bir bilgisayara bağlantı noktası 25 Telnet anlatılmaktadır. Microsoft Exchange tabanlı sunucuları ile SMTP iletişim sorunları çözmek için çalışıyor ve genel sorun giderme amaçlıdır değilken hata iletileri dahil olmak üzere bu makaledeki bilgiler, sadece sorunlar için geçerlidir.

I had the same problem, php 5 on iis6, 2003 server. Php always failed when trying to use mail(). I've managed to get it accepting mail from php by changing the Relay Restrictions from 'Only the list below' (which is empty by default) to 'All except the list below' . The relay restrictions can be found in the Access tab in the smtp servers properties screens. Of course if the server is open to the internet then one would have to be more sensible about these relaying restrictions but in my case this is on a virtual server on a dev box.

Bu yardımcı olur umarım.