php网站在服务器上邮件发送不了,在本地可以
2017-05-15 15:30
766 查看
标签: php邮箱
2015-11-27 13:58 879人阅读
评论(0) 收藏
举报
分类:
php(2)
版权声明:本文为博主原创文章,未经博主允许不得转载。
最近在做phpmailer发送邮件功能里发现了一个问题,网站程序在本地测试邮件可以正常发送到指定的邮箱。
但是把代码放到空间上面,邮件发不了,提示发送出错!研究半天没有搞懂为什么 ……(高手勿喷)
后来上网找了一下,有人说是服务器商因为安全原因把PHP 的 fsockopen 函数给关闭了。
于是按照网上的解决方法把fsockopen函数替换了,方法如下:
首先找到 phpmailer 的 class.stmp.php文件:
[php] view plain copy- $this->smtp_conn = @fsockopen( $host, // the host of the server
- $port, // the port to use
- $errno, // error number if any
- $errstr, // error message if any
- $tval); // give up after ? secs
把“ @fsockopen”改为“@stream_socket_client”(注意两个函数的参数是不一样的)
1 2 3 4 |
$this ->smtp_conn = @stream_socket_client( $host .’:’. $port , // the host of the server $errno , // error number if any $errstr , // error message if any $tval ); // give up after ? secs |
这里 PHP版本应高于 5.0 的,因为较早版本没有stream_socket_client()函数的。
另外如果服务器商没有把pfsockopen函数关闭的话也可以使用这个函数替换,这个函数的写法跟“fsockopen”是一样的,所以这里就不贴代码了。
提醒一下如果你是使用的万网的主机可以自己主机管理里面的高级设置中看一下是不是fsockopen函数被关闭了。
阿里云主机设置:
使用虚拟主机过程中,客户经常需要开启相关函数和设置环境参数,该操作客户可以自行完成。
操作方法:
登录到 主机管理控制台 > 高级环境设置 ,即可显示您需要修改的函数和环境参数。选择后,单击 保存设置 即可。
如下截图:
如问题还未解决,请联系售后技术支持。
阿里云:会员中心--》左侧的虚拟机--》选中虚拟机--》高级环境配置---》php.ini配置
相关文章推荐
- [置顶] phpMailer在本地可以发送邮件,服务器上不行
- 利用smtp.163.com 发送邮件(本地无需服务器)
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- phpmailer发送邮件,可以带附件
- 【PHP邮件】phpmailer开源邮件类 部署到服务器上不能发送邮件
- php mailer类调用远程SMTP服务器发送邮件实现方法
- php ajax提交数据 在本地可以执行,而在服务器不能执行
- Windows 2003设置PHP扩展支持OpenSSL的解决方法 服务器发送邮件
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- 基于apache服务器的网站本地可以访问,局域网内不能访问的问题解决方法
- 利用smtp.163.com 发送邮件(本地无需服务器)
- 强适应性的PHP邮件发送类(采用邮件专递方式,无需smtp服务器)
- 这篇文章主要介绍了Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess,需要的朋友可以参考下
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法
- PHP 利用 smtp服务器发送邮件
- [转]使用php mailer类调用远程SMTP服务器发送邮件Could not execute: /var/qmail/bin/sendmai
- SPring中quartz的配置(可以用实现邮件定时发送,任务定时执行,网站定时更新等)
- 搭建了一个Apache+Php+MySQL的服务器。要如何通过Apache发布网站使得其他的电脑可以通过局域网访问?
- 利用smtp.163.com 发送邮件(本地无需服务器)