位置: 编程技术 - 正文

Linux服务器下PHPMailer发送邮件失败的问题解决(linux 运行php)

发布时间:2024-01-12

推荐整理分享Linux服务器下PHPMailer发送邮件失败的问题解决(linux 运行php),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux装php,linux开启php服务,linux apache php,linux apache php,linux php服务器,linux apache php,linux php服务器,linux apache php,内容如对您有帮助,希望把文章链接给更多的朋友!

需求

更换服务器之后,我发现我的发送邮件功能失效了!原来的服务器是可以的,一定是哪里出问题了,决定来排查一下。我是用的PHPMailer,SMTP方式发送邮件的。

排查过程

这种方式首先PHP要开启sockets拓展,查了一下phpinfo页面,是开启的:

看了一下openssl也是开启(因为拿了qq邮箱来测),所以没问题:

那就再看一下allow_url_fopen,开启的,没问题:

是不是禁用了函数?没有禁用,没问题:

那配置上就没有问题了,我就想,是不是端口被占用了?

运行一下:netstat -tnlp

第一条就是这玩意:

端口被占用,被一个叫master的玩意占了,好家伙,看看是什么东西,运行ps -f -p 看一下结果,为当前这个程序的进程号PID,可以看到是:

是postfix这个东西在运行,可能搭建环境的时候不小心给装了。

postfix是个什么东西?

postfix是一款运行在Linux环境下免费的邮件服务器,或者称为MTA(Mail Transfer Agent),其它类似的有Sendmail、Qmail、exim及Zmailer 等。所以Postfix就是一个搭邮件服务器的。那这玩意肯定是冲突了,我们要通过端口请求外部的邮件服务器,而本地用端口运行了一个邮件服务器,这个是不行的估计.

尝试解决问题

我们尝试一下用我们这个邮件服务器去发邮件,而不是用外部服务器(比如之前用阿里云企业邮),放了一小段测试代码到PHPMailer目录同级下:

通过端口的本地服务器发送邮件,运行这个页面,发现不行,报错不能够验证,说明这其中还有一些配置要弄,暂时行不通,不往下深究本地服务器发送了,我们尝试一下换回:

Linux服务器下PHPMailer发送邮件失败的问题解决(linux 运行php)

试一下,还是不行:

没办法连接到SMTP。那我们把端口的postfix服务器杀掉, 执行kill (当前postfix的PID),再执行一次,还是同样错误,无法连接上。这就奇了怪了,端口没有程序运行了,还不行。

可能的原因

查到有可能是因为ipv6的原因,phpMailer在进行smtp服务器DNS解析时,得到了IP v6地址,然后与IP v6解析到的地址进行连接,导致连接失败。

我试一下:

ip -6 addr show

没东西,那又不是这个问题。

那是什么原因呢?

解决问题

既然端口不可用,于是我想,是否可以尝试一下其它端口,用端口试试。

端口(SMTPS):端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。

端口似乎看起来还更好,直接就开始尝试了,进行以下尝试,以下为命令:

sbin/iptables -I OUTPUT -p tcp ?dport -j ACCEPT 打通端口

/etc/rc.d/init.d/iptables save 保存

service iptables restart 重启

/etc/init.d/iptables status 查看需要打开的端口是否生效?

似乎可行,现在尝试一下,用SMTP的SSL连接方式来发送邮件,稍微改了一下测试代码:

执行,成功!右下角弹出了QQ邮件的提醒。

总结

PHPMailer通过端口进行更安全的SMTPS协议发送邮件

可以修改:

为:

即可。

好了,

标签: linux 运行php

本文链接地址:https://www.jiuchutong.com/biancheng/293419.html 转载请保留说明!

上一篇:php获取网站根目录物理路径的几种方法(推荐)(php获取当前网址)

下一篇:php实现留言板功能(php实现留言板功能怎么用)

  • 借款合同印花税税率2023
  • 资产负债表是根据什么填的
  • 代销商品怎么交增值税
  • 企业上缴税费总额怎么算
  • 收回个人社会保险费是否可以冲红管理费用
  • 公司买金蝶计入什么科目
  • 供暖企业收取的容量热价费怎么计入收入
  • 厂房无偿租赁合同
  • 库存商品毁损会导致什么
  • 冲减应收帐款分录
  • 如何算清楚公司的账
  • 工商年报中的纳税总额是所属期应交还是实交税额
  • 重庆房产税政策历史
  • 报完税后反结账调整主营业务收入可以吗?
  • 新公司开业的祝福语
  • 个人所得税生产经营所得投资者减除费用
  • 个人劳务报酬所得税计算方法2020
  • 预收的销售商品货款通过什么科目核算
  • 会计报表附表属于会计报表内容吗
  • 做买卖交税
  • 商业企业向供货方收取的返还收入
  • 贸易企业出口退税的操作明细流程
  • 财务报表申报错了怎么撤销
  • 固定资产转移是什么意思
  • 怎么检查windows版本
  • 资产负债表短期负债包括哪些
  • 年终结算增值税怎么算
  • 工伤索赔的赔偿金额
  • 金融业营业税税率
  • 零申报的账怎么做
  • vue使用教程
  • 政府代建项目税收政策
  • jquery弹出层插件
  • php二维数组foreach
  • 制造费用的科目
  • 公司租赁个人车辆账务处理
  • 哪些情形需要办理会计工作交接
  • 建筑行业销售材料怎么做
  • 损益表填制
  • 个人发票抬头怎么弄
  • 实际发生费用的概念
  • 帝国cms商城教程
  • 织梦的css样式在哪
  • 将原生html改成vue
  • 专项应付款 会计分录
  • 专项附加扣除批量上传怎么上传
  • 房东房租不开票违法吗
  • 可供出售金融资产新准则叫什么
  • 税前一次性扣除和100%加计扣除
  • 库存商品怎么计提坏账
  • 累计折旧的借贷方表示
  • 账外资产处理
  • 融资租赁出租人与承租人之间形成债权债务关系
  • 其他贷款服务计入什么科目
  • 什么是发票抬头信息
  • 哪些发票必须注销
  • 什么是固定资产?其特征有哪些
  • 盈余公积的构成
  • mysql获取表行数的方法
  • freebsd使用wifi
  • win7怎么隐藏我的电脑
  • 设置共享时可使用的权限
  • mac电脑怎么安装ie浏览器
  • windows模拟
  • linux中sed
  • xp系统无线网络连接怎么没有
  • win内存占用率过高
  • win8系统游戏
  • win10每周更新
  • Centos6.8下Node.js安装教程
  • zigzag源码
  • 税务咨询电话是什么
  • 云南定额发票真伪查询平台
  • 非涉密网络严禁什么
  • 地税网上预约
  • 企业没有经营怎么写原因
  • 增值税税负标准是什么
  • 税控盘操作指南
  • 北京国税局电话客服热线
  • 福建高速公路电子发票怎么开
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号