解决phpmailer可以在windows下面发送成功, 在linux下面失败的问题

本文介绍了在Linux服务器上使用PHPMailer发送邮件遇到的问题及解决方案。当PHPMailer在Windows上工作正常,但在Linux上失败时,排查过程包括检查PHP的sockets拓展、openssl、allow_url_fopen设置、函数禁用情况以及端口占用。发现25端口被postfix邮件服务器占用,通过kill进程、调整SELinux设置和尝试更换端口如465(SMTPS)来解决问题。最终,通过465端口的SMTPS协议成功发送邮件。
摘要由CSDN通过智能技术生成

排查过程

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

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

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

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


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

如果有问题 就这样

你可以打开php.ini。有两个地方可能禁用此函数:
1、 allow_url_fopen = On选项是否为ON,为OFF时函数将被禁用
2、查看 disable_functions = ..........后有没有 fsockopen。如果有去掉

运行一下:netstat -tnlp

第一条就是这玩意:

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

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

postfix是个什么东西?

postfix是一款运行在Linux环境下免费的邮件服务器,或者称为MTA(Mail Transfer Agent),其它类似的有Sendmail、Qmail、exim及Zmailer 等。所以Postfix就是一个搭邮件服务器的。那这玩意肯定是冲突了ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值