CentOS 6:无法使用PHPMailer发送电子邮件,但在笔记本电脑上可以

CentOS 6:无法使用PHPMailer发送电子邮件,但在笔记本电脑上可以,centos,phpmailer,centos6,Centos,Phpmailer,Centos6,我正在aliyun.com上设计一个网站。此网站包含使用PHPMailer发送电子邮件的功能。它完美地工作在我的笔记本电脑上,一台运行XAMPP的Mac Book Air,但不在使用完全相同的php文件SMTP主机、密码等的实时服务器上。。。。下面是我在详细模式下从PHPMailer获得的日志: 2015-04-08 02:59:42 Connection: opening to smtp.mywebsite.com:587, t=300, opt=array (

我正在aliyun.com上设计一个网站。此网站包含使用PHPMailer发送电子邮件的功能。它完美地工作在我的笔记本电脑上,一台运行XAMPP的Mac Book Air,但不在使用完全相同的php文件SMTP主机、密码等的实时服务器上。。。。下面是我在详细模式下从PHPMailer获得的日志:

2015-04-08 02:59:42 Connection: opening to smtp.mywebsite.com:587, t=300, opt=array (
                                      )
2015-04-08 02:59:42 Connection: opened
2015-04-08 02:59:42 SERVER -> CLIENT: 220 smtp.aliyun-inc.com MX AliMail Server(10.194.100.112)
2015-04-08 02:59:42 CLIENT -> SERVER: EHLO mywebsite.com
2015-04-08 02:59:42 SERVER -> CLIENT: 250-smtp.aliyun-inc.com
                                  250-8BITMIME
                                  250-AUTH=PLAIN LOGIN XALIOAUTH
                                  250-AUTH PLAIN LOGIN XALIOAUTH
                                  250-PIPELINING
                                  250 DSN
2015-04-08 02:59:42 CLIENT -> SERVER: STARTTLS
2015-04-08 02:59:42 SERVER -> CLIENT: 220 Ready to start TLS
2015-04-08 02:59:42 CLIENT -> SERVER: QUIT
2015-04-08 02:59:44 SERVER -> CLIENT:  ��:%4P���pGC#mLa+�%YF�l �0���I
2015-04-08 02:59:44 SMTP ERROR: QUIT command failed:  ��:%4P���pGC#mLa+�%YF�l �0���I
2015-04-08 02:59:44 Connection: closed
2015-04-08 02:59:44 SMTP connect() failed.
虽然我花了很多时间在互联网上寻找解决方案,但我无法找出问题的根源。。。我正在使用最新版本的PHPMailer,命令行中的mail功能运行良好,我的意思是我收到了它们,那么问题可能来自哪里

提前多谢


Alplob

也许,Centos服务器上没有安装openssl PHP扩展。您应该确保已安装openssl扩展。要检查已安装的扩展,请在Centos上尝试以下命令:

php -i

并在结果文本中查找openssl。

谢谢您的回答。我发现了以下几行代码:openssl openssl支持=>启用的openssl库版本=>openssl 1.0.1e-fips 2013年2月11日openssl头版本=>openssl 1.0.1e-fips 2013年2月11日指令=>本地值=>主值openssl.cafile=>无值=>无值openssl.capath=>无值=>无值=>无值以及其中一个:注册流套接字传输=>tcp、udp、unix、udg、ssl、sslv3、sslv2、tls、tlsv1.0、tlsv1.1、tlsv1.2任何小时都不包括读取。奇怪的是,您的服务器没有公布STARTTLS,但还是接受了该命令!同样奇怪的是,它在不需要STARTTLS的情况下发布AUTH广告。我想说邮件服务器的配置看起来很糟糕。谢谢你的回答。实际上,这在中国似乎是一个普遍的问题。很多人在将phpMailer与阿里云服务器(即ie)一起使用时遇到了问题。但我没有设法解决它……禁用stream_socket_客户端但仍然允许fsockopen是没有意义的。第二个例子是使用旧版本的PHPMailer,这没有帮助,如果您需要进行这样的更改,正确的方法是对库进行子类化,并覆盖您想要更改的内容-您永远不应该编辑库本身,因为它会破坏您的升级能力。总的来说,看起来您使用的是一个残废的PHP构建,与一个配置糟糕的邮件服务器进行对话,因此代码出现问题并不奇怪!我建议找一个不那么糟糕的ISP!非常感谢你的反馈,这让我走上了正轨。我实际上是在使用Remi repo的PHP版本来更新PHP5.6,而不是使用官方CentOS 6 repos PHP5.3中提供的PHP版本。我回到了官方版本,现在它开始工作了!