首页 > 代码库 > fsockopen()被禁用后的邮件发送问题

fsockopen()被禁用后的邮件发送问题

WordPress发送邮件的功能,一直以来都是靠插件解决的

换了一个主机商后,发现不能发送邮件了,使用wp-mail-smtp发送测试邮件给出的错误提示为: SMTP -> ERROR: Failed to connect to server:()

折腾一天后发现,原来是fsockopen函数被禁用了

找到wp-includes/class.smtp.php,174行

$this->smtp_conn = @fsockopen($host,$port, $errno, $errstr,$tval);

修改为

$this->smtp_conn = @pfsockopen($host,$port, $errno, $errstr,$tval);

替换之后再次失败了,pfsockopen函数也被禁用了,再次修改为

$this->smtp_conn = @stream_socket_client("tcp://".$host.":".$port, $errno, $errstr,$tval);

OK了,这回可以发送邮件了