有的時候做網(wǎng)站的程序?yàn)榱伺浜暇W(wǎng)站主機(jī)的需要(比如萬網(wǎng)的主機(jī),只支持fsockopen發(fā)郵件),我們需要讓W(xué)ordPress使用fsockopen函數(shù)來發(fā)送郵件。WordPress默認(rèn)并不是使用這種方式,我們可以通過修改代碼實(shí)現(xiàn)。
在wp-includes文件夾中,找到class-smtp.php文件,打開,大概在200多行的樣子,按照如下說明修改:
// 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方式。
不過,有個問題需要注意,以上修改實(shí)際上是對WordPress內(nèi)核代碼進(jìn)行修改,在每次升級WordPress內(nèi)核之后,這個修改會丟失。暫時還沒有找到辦法一勞永逸地解決這個問題。