鍍金池/ 問答/PHP/ fsockopen 發(fā)送郵件

fsockopen 發(fā)送郵件

fsockopen('smtp.163.com', 25, '', '', 10);
本地運(yùn)行的時候是好的,可以發(fā)送郵件,放到線上就返回了false,沒有任何報錯,不知道原因在哪!
有沒有什么方法可以知道FSOCKOPEN返回false的原因,本人不是拿來主義,只要給個可能會出現(xiàn)的情況就行
回答
編輯回答
孤客

pfsockopen — 打開一個持久的網(wǎng)絡(luò)連接或者Unix套接字連接。

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

從文檔中可以看出, int &$errnostring &$errstr 是引用類型, 不能直接賦值。

在 PHP 5.6 / PHP 7.1.16 (cli) 執(zhí)行結(jié)果如下

Fatal error: Only variables can be passed by reference in xxx.php on line 2

修改后代碼如下

<?php
$res = fsockopen('smtp.163.com', 25, $errno, $errmsg, 10);

var_dump($errno, $errmsg);
2017年4月2日 00:04
編輯回答
別硬撐

一般是關(guān)閉了25端口的,需要問下你的服務(wù)商是否開啟了25端口

2017年1月4日 11:21
編輯回答
厭遇
$handler = fsockopen('smtp.163.com', 26, $errcode, $errmsg, 10);
var_dump($errcode, $errmsg, $handler);
2018年1月13日 02:35