标签: php邮箱
2015-11-27 13:58 879人阅读
评论(0) 收藏
举报

分类:
php(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。

最近在做phpmailer发送邮件功能里发现了一个问题,网站程序在本地测试邮件可以正常发送到指定的邮箱。

但是把代码放到空间上面,邮件发不了,提示发送出错!研究半天没有搞懂为什么 ……(高手勿喷)

后来上网找了一下,有人说是服务器商因为安全原因把PHP 的 fsockopen
函数给关闭了。

于是按照网上的解决方法把fsockopen函数替换了,方法如下:

首先找到
phpmailer 的 class.stmp.php文件:

  1. $this->smtp_conn = @fsockopen( $host,    // the host of the server
  2. $port,    // the port to use
  3. $errno,   // error number if any
  4. $errstr,  // error message if any
  5. $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函数被关闭了。

阿里云主机设置:

fsockopen函数

问题场景:

使用虚拟主机过程中,客户经常需要开启相关函数和设置环境参数,该操作客户可以自行完成。

操作方法:

登录到 主机管理控制台 >
高级环境设置 ,即可显示您需要修改的函数和环境参数。选择后,单击
保存设置 即可。

如下截图:

如问题还未解决,请联系售后技术支持

阿里云:会员中心--》左侧的虚拟机--》选中虚拟机--》高级环境配置---》php.ini配置

php网站在服务器上邮件发送不了,在本地可以的更多相关文章

  1. C# 通过smtp服务器进行邮件发送 MailHelper

    C# 通过smtp服务器进行邮件发送 MailHelper.cs using System; using System.Data; using System.Configuration; using ...

  2. GIT用服务器上的版本强制覆盖掉本地的版本(转)

    以前在机子上使用git下载了linux git版本库上的源代码,由于在阅读源代码的过程中,难免会对本地的文件进行修改,这样就导致本地文件与服务器上的文件版本不一致,我想做的就是用服务器上的版本强制覆盖 ...

  3. 将服务器上的SqlServer数据库备份到本地

    如何将服务器上的SqlServer数据库备份到本地电脑 http://bbs.csdn.net/topics/370051204 有A数据库服务器,B本机:    我现在想通过在B机器上通过代码调用S ...

  4. 记 CentOS 服务器上安装 neo4j 图数据库及本地访问

    下载 去官网下载压缩包放到服务器上.地址为neo4j 下载中心,我这里选择的是 Neo4j 3.5.25 (tar).具体如何做呢?我这里使用的是土方法,即先压缩包下载到本地电脑(win 10系统), ...

  5. 服务器报警邮件发送到QQ邮箱,但是被系统拦截

    # 为啥发送到QQ邮箱呢?因为QQ邮箱可以和微信关联,第一时间收到消息 if 没有设置白名单,然后被拦截当做垃圾邮件了: 设置白名单就可以了,这样的状态特征是: 邮件在垃圾箱里面能找到 elif 还是 ...

  6. asp.net本地读取excel正确。但在iis服务器上就报错 未在本地计算机上注册“Microsoft.ACE.OleDb.12.0”提供程序

    本地vs2010可以上传ecxel文件.并读取数据,但部署到本地IIS.并访问.则提示: 未在本地计算机上注册“Microsoft.ACE.OleDb.12.0”提供程序 首先:确保安装了Micros ...

  7. IntelliJ IDEA 2017版 spring-boot 2.0.3 邮件发送搭建,概念梳理 (一)

    邮件发送功能总结        第一部分 背景   一.使用场景 (1)注册验证    注册各大网站,通常需要输入邮件地址,在注册成功后,会发送一封邮箱验证的邮件,点击确认,证明这个邮箱是用户自己的 ...

  8. 四、服务器上的 Git

    一个远程仓库通常只是一个裸仓库(bare repository)— 即一个没有当前工作目录的仓库.因为该仓库仅仅作为合作媒介,不需要从磁碟检查快照:存放的只有 Git 的资料.简单的说,裸仓库就是你专 ...

  9. 玩转 SpringBoot2.x 之整合邮件发送

    序 在实际项目中,经常需要用到邮件通知功能.比如,用户通过邮件注册,通过邮件找回密码等:又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多. 原文地址:https://www.mm ...

随机推荐

  1. ffempg支持文件解码

    在做一个数据通道 要求有两个 1.支持打开实时流,解码得到图片 2.支持打开视频文件,得到解码图片 第一个要求前任已经实现 bool FfmpegStreamChr::Open(const char ...

  2. GIT命令一页纸

    ,配置用户名和邮箱 $ git config --global user.name "Your Name" $ git config --global user.email &qu ...

  3. ASP.NET Core学习之二 菜鸟踩坑

    对于像我这样没接触过core的人,坑还是比较多的,一些基础配置和以前差别很大,这里做下记录 一.Startup 1.注册服务 // This method gets called by the run ...

  4. Spring加载XML机制

    转载自跳刀的兔子   http://www.cnblogs.com/shipengzhi/articles/3029872.html 加载文件顺序 情形一:使用classpath加载且不含通配符 这是 ...

  5. Android 获取唯一标识替代方法

    private static String getTheOnlyID() { String onlyOne; //获取IMEI TelephonyManager TelephonyMgr = (Tel ...

  6. python正则详解

    正则表达式概述 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),是计算机科学的 ...

  7. windows PAE扩展和AWE编程

    在32位windows上只能看到最大3GB的内存空间,而且每个应用程序只能访问4GB的的内存,这个限制是windows独有的,为了使程序能够访问大于4GB的内存空间,需要使用AWE编程接口,同时需要开 ...

  8. linux之 NFS服务器与客户端的安装与配置

    今天实验室需要搭建NAS,我负责的是NFS的安装与配置,现将整理的文档分享一下: 参考一:Linux下rpm 安装包方式安装 http://linux.chinaunix.net/techdoc/be ...

  9. console报错类型

    常见 console报错 Error 错误 EvalError 全局错误 RangeError 引用(范围)错误 ReferenceError 参数(参考)错误 SyntaxError 语法错误 ty ...

  10. (7拾遗)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练

    从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...