linda89757 发表于 2017-6-15 13:03:20

lnmp1.4 使用 phpmailer 发邮件 不是超时就是 502无响应

军哥,在本地 phpstudynginx+php 都可以。上传到服务器就会报错。502?phpmailer 是从官网最小化安装的。

licess 发表于 2017-6-15 14:06:47

开php-fpm慢日志和错误日志看一下

linda89757 发表于 2017-6-15 15:05:00

原帖由 licess 于 2017-6-15 14:06 发表 http://bbs.vpser.net/images/common/back.gif
开php-fpm慢日志和错误日志看一下

php-fpm 日志
WARNING: child 28550, script '/home/wwwroot/rainknowfirst/phpmailer/index.php' (request: "GET /phpmailer/index.php") executing too slow (122.529232 sec), logging
NOTICE: child 28550 stopped for tracing
NOTICE: about to trace 28550
NOTICE: finished trace of 28550
WARNING: child 28550, script '/home/wwwroot/rainknowfirst/phpmailer/index.php' (request: "GET /phpmailer/index.php") execution timed out (155.863062 sec), terminating
WARNING: child 28550 exited on signal 15 (SIGTERM) after 166.671172 seconds from start
NOTICE: child 28553 started

慢日志:
pid 28550
script_filename = /home/wwwroot/rainknowfirst/phpmailer/index.php
stream_socket_client() /home/wwwroot/rainknowfirst/phpmailer/class.smtp.php:294
connect() /home/wwwroot/rainknowfirst/phpmailer/class.phpmailer.php:1660
smtpConnect() /home/wwwroot/rainknowfirst/phpmailer/class.phpmailer.php:1540
smtpSend() /home/wwwroot/rainknowfirst/phpmailer/class.phpmailer.php:1335
postSend() /home/wwwroot/rainknowfirst/phpmailer/class.phpmailer.php:1213
send() /home/wwwroot/rainknowfirst/phpmailer/index.php:32

好像是说 stream_socket_client() 这个函数连不上 smtp 服务器。默认php.ini 里的 disable_functions 里有这个函数。
我从里面删除后,重启 php-fpm 测试还是不行?看到一篇文章好像很符合我的情况http://www.linuxdiyf.com/linux/26343.html
可是lnmp1.4下找不到相应的目录。军哥能帮忙看看吗?还有用官方 stream_socket_client() 例子试了,这个函数可以正常工作。但是连接 smtp 就是不行。

[ 本帖最后由 linda89757 于 2017-6-15 17:14 编辑 ]

licess 发表于 2017-6-16 09:22:10

回复 3# 的帖子

1.4下composer安装了个phpmailer测试发邮件没有问题

安装包src目录下自己解压对应版本的php

linda89757 发表于 2017-6-16 11:39:42

原帖由 licess 于 2017-6-16 09:22 发表 http://bbs.vpser.net/images/common/back.gif
1.4下composer安装了个phpmailer测试发邮件没有问题

安装包src目录下自己解压对应版本的php
军哥有没有试试从官方(https://github.com/PHPMailer/PHPMailer)那里下载上传安装。用最小化安装(就是下载 class.smtp.php 和 class.phpmailer.php 及 PHPMailerAutoload.php 和 demo),我用 composer 试了还是不行,502 .在 centos 7.2 64bit 上重新安装,(之前是 centos6.8 64bit )lnmp1.4 还是不行。还提示502 Bad Gateway。我最终放弃了 lnmp1.4.不知道是什么原因?但愿以后的版本能修好这个bug吧。

[ 本帖最后由 linda89757 于 2017-6-16 16:41 编辑 ]

licess 发表于 2017-6-16 18:15:29

回复 5# 的帖子

新装lnmp 1.4 环境,composer和单独只下载PHPMailerAutoload.php、class.smtp.php、class.phpmailer.php 自己写的测试脚本,使用qq smtp发送均没有任何问题
这个不是lnmp 1.4的问题,建议开debug信息,换个smtp服务器及账号密码试试

linda89757 发表于 2017-6-16 20:40:37

原帖由 licess 于 2017-6-16 18:15 发表 http://bbs.vpser.net/images/common/back.gif
新装lnmp 1.4 环境,composer和单独只下载PHPMailerAutoload.php、class.smtp.php、class.phpmailer.php 自己写的测试脚本,使用qq smtp发送均没有任何问题
这个不是lnmp 1.4的问题,建议开debug信息,换个smtp服务器及账号 ...
忘了给军哥说了,我用的是阿里云,默认25端口被封。防垃圾邮件。错怪军哥了。另,465端口没封,不过要使用得要证书,但不会弄,军哥有教程吗?

[ 本帖最后由 linda89757 于 2017-6-16 22:17 编辑 ]

licess 发表于 2017-6-17 08:59:27

回复 7# 的帖子

连smtp不需要什么证书,只要phpmailer填写对接口和tls 或 ssl 不就行

linda89757 发表于 2017-6-18 09:37:27

原帖由 licess 于 2017-6-17 08:59 发表 http://bbs.vpser.net/images/common/back.gif
连smtp不需要什么证书,只要phpmailer填写对接口和tls 或 ssl 不就行
终于弄好了,军哥是对的。谢谢军哥!!!
页: [1]
查看完整版本: lnmp1.4 使用 phpmailer 发邮件 不是超时就是 502无响应