Linux服务器下PHPMailer发送邮件失败问题的解决
2017-11-09 21:24
585 查看
最近在做一个项目,其中有用到PHPmailer来发送邮件,在本地测试好后,上传到线上,邮件发送失败。用的是SMTP协议,本地用的是wamp环境,线上用的是lamp环境。于是就进行一系列的排查。
排查过程
这种方式首先PHP要开启sockets扩展,以及openssl。
1、查看php扩展
发现是开启的
2、 然后打开php.ini,查看allow_url_fopen
没问题,是开启的。再查看是不是禁用函数了
fsockopen ()和pfsockopen()以及stream_socket_client()函数并没有被禁用。
3、查看防火墙
>
查看httpd_can_sendmail与是不是打开的,没有的话用命令打开
排查过程
这种方式首先PHP要开启sockets扩展,以及openssl。
1、查看php扩展
#php -m
发现是开启的
2、 然后打开php.ini,查看allow_url_fopen
allow_url_fopen = On
没问题,是开启的。再查看是不是禁用函数了
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
fsockopen ()和pfsockopen()以及stream_socket_client()函数并没有被禁用。
3、查看防火墙
#sestatus -b | grep httpd4000
>
查看httpd_can_sendmail与是不是打开的,没有的话用命令打开
setsebool -P httpd_can_sendmail on setsebool -P httpd_can_network_connect on
4、接着排查端口是不是被占用了,因为SMTP的默认端口是25。
端口被占用了,既然25端口不可用,于是我想,是否可以尝试一下其它端口,用465端口试试。
465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露。
修改程序如下,$mail = new PHPMailer(); $mail->SMTPSecure = 'ssl'; $mail->Port = 465;
执行,发送邮件成功!终于解决了,特记录一下。
相关文章推荐
- Linux服务器下PHPMailer发送邮件失败的问题解决
- centos使用phpmailer发送邮件失败的解决办法
- 解决phpmailer可以在windows下面发送成功, 在linux下面失败的问题
- 解决jdk1.8中发送邮件失败(handshake_failure)问题
- openerp 7.0邮件多用户发送失败问题 解决方法
- 解决jdk1.8中发送邮件失败(handshake_failure)问题
- 解决jdk1.8中发送邮件失败(handshake_failure)问题
- 解决phpmailer可以在windows下面发送成功, 在linux下面失败的问题
- 解决jdk1.8发送邮件SSL握手失败问题
- 解决jdk1.8发送邮件SSL握手失败问题
- 解决了asp.net发送邮件失败问题
- python实战===使用smtp发送邮件的源代码,解决554错误码的问题
- windows(linux---Fedora13)php 发送邮件 (sendmail+PHPMailer) 结合配置问题
- kafka java中发送数据、连接失败问题解决
- kafka java中发送数据、连接失败问题解决
- 解决了一个 java7 发送 ftp 文件失败的问题
- .net发送邮件系统问题解决
- 关于crontab定时任务执行失败发送报错邮件的问题
- 常见邮件发送失败原因分析以及解决方法
- Jenkins使用Email Extension Plugin插件发送邮件失败问题小记