php fsockopen

4 Cevap php

Ben bir sunucuya bağlanmak için fsockopen kullanıyor bir sunucu üzerinde basit bir php script var.

<?php
$fp = fsockopen("smtp.gmail.com", 25, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    echo fgets($fp, 1024);
    fclose($fp);
}
?>

The problem is the the script times out and fails to connect. If i change the port from 25 to 80 for example it works without problems on any host. So the problem seems to be only the port 25 no matter what host i use, i tried a lot of them and all work for port 80 and others but for 25 fails.
Connections are not blocked form firewall as if i telnet from shell it successfully connects to any port on any host.
Any idea what could be the problem as it's really weird?

LE: i kabuğundan aynı php komut dosyası çalıştırırsanız, php i başarısız http tarafından çalıştırmak sadece bu yüzden çalışır scriptname.php. Ben bu yüzden sorun buralarda bir yerde olduğunu suPHP'lidir apache var

4 Cevap

Gibi maxnk firewall ya sunucuda veya ISS tarafından, büyük olasılıkla konudur bahsetti. Liman 25 sıkça spam önlemek için bir yöntem olarak firewalled edilir.

Eğer gmail belirtilen beri sadece hızlı bir test olarak, bunun yerine port 587 bağlanmayı denemek isteyebilirsiniz. Gmail kullanıcıları aşırı kısıtlayıcı güvenlik duvarlarını aşma yardımcı port 25 ek olarak bu alternatif bağlantı noktası hakkında SMPT dinler.

Ben de, PHP'nin soket kullanımı ile bazı garip sorunlar çalıştırmak. Bu koşuyordu sistemi ile bir sorun olmaktan sona erdi. Eğer farklı bir makinede çalışan kodu denediniz mi?

Ben bağlantı sorunu makine ile olduğunu düşünüyorum. Ben sadece benim makinede (linux SUSE) bir komut dosyası içine kopyaladığınız kodu ve php-f test_script ile koştu. Ben şu mesajı aldım

220 mx.google.com ESMTP j8sm1814228gvb.0

CentOS SELinux'un bağlantı garabeti neden olabilir hangi etkin olabilir. Eğer hata günlüklerini kontrol ettiniz mi?