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