php无法正常发送邮件

今天在调试网站的时候,发现用户找回密码的功能,不能正常的发送新密码到用户的注册邮箱。


但是,相同的代码在本地调试环境中就是正常的,在远程服务器上就是不行。


最后定位出来的问题是:



空间服务商,在php.ini中默认把PHP函数fsockopen给禁用了,启动之后,就可以正常运行发送邮件的功能。


我用的是email.class.php类文件。


function smtp_sockopen_relay()
{

<span style="white-space:pre">	</span>$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n");

<span style="white-space:pre">	</span>$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);

<span style="white-space:pre">	</span>if (!($this->sock && $this->smtp_ok())) {

<span style="white-space:pre">	</span>$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n");

<span style="white-space:pre">	</span>$this->log_write("Error: ".$errstr." (".$errno.")\n");

<span style="white-space:pre">	</span>return FALSE;

}


可以定位到这段代码中需要fsockopen函数,但是缺加了@屏蔽其错误提示,所以导致没有看到明显的错误提示。


问题解决的一些感悟,需要看看调用的其他类中是否用到了某些系统函数,但是却被空间商默认给关闭的?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值