background image

$mail->SMTPDebug=0;
if($mail->Send()){//发送邮件
exit 'ok';
}else{
exit 'fail';
}

大概记得以前初次使用 PHPMailer 的时候,出现过莫名奇妙的问题,也在网上花了不少
时间找资料,最终才得以解决。目前记得服务器 PHP 环境不能禁止 fsockopen 函数,否
则邮件发送不了,但也有解决的办法。总之,一开始使用,总有不顺,由于时间久远,现
在想来,也不知道具体改了什么。所以,将现在正在使用的 PHPMailer 目录文件打包上
传到 CSDN,也为方便以后使用吧,同时也方便为此事烦恼的朋友。另外,将当时出现的
问题所收录的内容整理如下:

1、Error: Could not connect to SMTP host
原因 1:不邮邮件系统要求的 smtp 请求不同一,但是都允许大写,有些不支持小写,
比如网易,腾讯的邮箱。(至于是不是这样,我没测试过,反正都改为大写,也不影响)
解决方法:

 

复制代码 代码如下:

public function IsSMTP() {
$this->Mailer ='SMTP'; // 将 smtp ->SMTP ;即原来是小写,现在大写。
}
// Choose the mailer and send through it
switch($this->Mailer) {
case 'sendmail':
return $this->SendmailSend($header, $body);
case 'SMTP'://

 

同样 将 smtp ->SMTP ;即原来是小写,现在大写。

return $this->SmtpSend($header, $body);
case 'mail':
default:
return $this->MailSend($header, $body);
}

2、SMTP Error: Could not connect to SMTP host

原因:有的虚拟主机,或服务器,为了安全起见屏蔽了 fsockopen()

函数 导致无法发

送邮件
解决方法:
启用 fsockopen 函数
首先,在 php.ini 中去掉下面的两个分号
;extension=php_sockets.dll
;extension=php_openssl.dll