有的時(shí)候做網(wǎng)站的程序?yàn)榱伺浜暇W(wǎng)站主機(jī)的需要(比如萬(wàn)網(wǎng)的主機(jī),只支持fsockopen發(fā)郵件),我們需要讓W(xué)ordPress使用fsockopen函數(shù)來(lái)發(fā)送郵件。WordPress默認(rèn)并不是使用這種方式,我們可以通過(guò)修改代碼實(shí)現(xiàn)。
在wp-includes文件夾中,找到class-smtp.php文件,打開(kāi),大概在200多行的樣子,按照如下說(shuō)明修改:
// Connect to the SMTP server
$errno = 0;
$errstr = '';
$socket_context = stream_context_create($options);
//Suppress errors; connection failures are handled at a higher level
/*$this->smtp_conn = @stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);*/
$this->smtp_conn = fsockopen($host, $port, $errno, $errstr);
以上代碼實(shí)際上就是將WordPress默認(rèn)的SMTP鏈接方式,修改成使用fsockopen方式。
不過(guò),有個(gè)問(wèn)題需要注意,以上修改實(shí)際上是對(duì)WordPress內(nèi)核代碼進(jìn)行修改,在每次升級(jí)WordPress內(nèi)核之后,這個(gè)修改會(huì)丟失。暫時(shí)還沒(méi)有找到辦法一勞永逸地解決這個(gè)問(wèn)題。