今天在使用Typecho插件CommentToMail时,发现我的主机无法发送邮件,报错SMTP connect() failed,使用的阿里云万网虚拟主机,查了下原因,在@胡东东博客里找到了方法,发现万网屏蔽了mail()函数和stream_socket_client函数,还好还可以使用fsockopen函数来发信。
首先:打开插件目录中lib目录下,class.smtp.php文件。
找到第 211行~218行,将其屏蔽。(stream_socket_client 的行位置,可能有所不同)
$this->smtp_conn = @stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);
- 添加下面一行:
$this->smtp_conn = fsockopen($host, $port, $errno, $errstr);
- 保存OK,有些相同问题,也可以试试这个方法。