在使用smtp发送邮件时报错Error: Cannot connenct to relay host smtp.163.com Error: ()
解决方法如下:
<?php
require_once "email.class.php";
$smtpserver = "smtp.163.com";
$smtpserverport =25;
$smtpusermail = "test@163.com";
$smtpemailto = "xxxxxxxx@qq.com";
$smtpuser = "test"; //注此处是邮箱去掉@之后的名称包括@
$smtppass = "*******"; //此处不是邮箱的登录密码,而是客户端的授权码
$mailtitle = 'test mail';
$mailcontent = "<h1>just test!</h1>";
$mailtype = "HTML";
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);
$smtp->debug = true;
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
?>
1.检查自己的服务器的环境配置是否开通fsockopen;
a.找到php.ini,查看两个地方,一个是allow_url_fopen,这个地方要设置成on;另一个地方是查disable_functions,如果后面出现了fsock,fsockopen,则需要把这两个函数去掉,重启apache,然后就可以正常发送邮件了。
b. 如果是使用阿里云免费版云虚拟主机的话,登录主机管理平台在【高级环境配置】选项找到PHP.ini设置选项将PHP函数fsockopen设置启用即可;
2.再检查发送人的账户密码事是否正确;
最后测试下果然正常了
附件:email.class.php下载地址:http://download.csdn.net/detail/leesin2011/9764391