wordpress SMTP插件發(fā)送郵件使用的是steam_connect_client了,但萬網(wǎng)主機是不支持steam_connect_client的,因為是一個空間所以我們并不能進行一些環(huán)境配置修改了,但在萬網(wǎng)控制面板會看到有一項fsockopen,如果要發(fā)郵件我們可以進行一個修改具體如下。
wordpress的SMTP發(fā)送方式使用的是steam_connect_client,而萬網(wǎng)主機提供的是fsockopen,因此要順利發(fā)送郵件,還要修改wordpress程序的源文件class-smtp.php,把wordpres的SMTP發(fā)送方式改為fsockopen以迎合萬網(wǎng)主機。
1、萬網(wǎng)主機fsockopen函數(shù)默認是關閉的,在萬網(wǎng)主機管理面板中開啟fsockopen函數(shù):
解決wordpress使用萬網(wǎng)主機不能發(fā)郵件問題
fsockopen 函數(shù)說明
fsockopen — 打開一個網(wǎng)絡連接或者一個Unix套接字連接
說明:
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
初始化一個套接字連接到指定主機(hostname)。
參數(shù)
hostname
如果安裝了OpenSSL,那么你也許應該在你的主機名地址前面添加訪問協(xié)議ssl://或者是tls://,從而可以使用基于TCP/IP協(xié)議的SSL或者TLS的客戶端連接到遠程主機。
port
端口號。如果對該參數(shù)傳一個-1,則表示不使用端口,例如unix://。
errno
如果傳入了該參數(shù),holds the system level error number that occurred in the system-level connect() call。
如果errno的返回值為0,而且這個函數(shù)的返回值為FALSE,那么這表明該錯誤發(fā)生在套接字連接(connect())調(diào)用之前,導致連接失敗的原因最大的可能是初始化套接字的時候發(fā)生了錯誤。
errstr
錯誤信息將以字符串的信息返回。
timeout
設置連接的時限,單位為秒。
2、編輯wp-include/目錄下的class-smtp.php文件,找到以下代碼:
- $socket_context = stream_context_create($options);
- $this->smtp_conn = @stream_socket_client(
- $host . ":" . $port, //Vevb.com
- $errno,
- $errstr,
- $timeout,
- STREAM_CLIENT_CONNECT,
- $socket_context
- );
替換為以下代碼:
$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);
提示:QQ郵箱偶爾還是不能發(fā)送郵件,163郵箱測試沒有問題。
新聞熱點
疑難解答
圖片精選