PHPMailer是一个很是棒的开源邮件类,使用也很是简单,可是对于虚拟主机来讲,每每要受到各类限制。刚才我在虚拟主机上使用PHPMailer就遇到一个“SMTP Error: Could not connect to SMTP host”错误。下面介绍两种解决办法:php
这个错误说明虚拟主机不支持PHPMailer默认调用的fsockopen函数,找到class.smtp.php文件,搜索fsockopen,就找到了这样一段代码:socket
使用stream_socket_client函数tcp
通常fsockopen()被禁,pfsockopen也有可能被禁,因此这里介绍另外一个函数stream_socket_client()。函数
stream_socket_client的参数与fsockopen有所不一样,因此代码要修改成:this
$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $tval);blog
这样就能够了。class