Cannot connenct to relay host smtp.163.com (php邮件发送失败)

2024-06-03 04:08

本文主要是介绍Cannot connenct to relay host smtp.163.com (php邮件发送失败),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

真是无语 搞了那么久,网上全部都说是 服务器php.ini 配置的问题,全tm都是抄的,误人子弟,好在 发现 该好贴,不过 阿里云 也真是 操蛋,屏蔽了25端口也不说,好吧!可能是我 没注意到。 扯淡完毕,下面是 解决问题的正文:

织梦自带了邮件发送功能,当我们在后台配置好了smtp信息后,如果还是发送邮件失败,可以通过下面的方法来定位。

PS:关注结果的站长们可以直接看第4、5步的结论,本例导致织梦邮件发送不出去的原因是阿里云禁用了25端口。
 
1、登陆dede网站后台,找到include/mail.class.php,先做好备份,然后对该文件做一些修改以打开debug日志,可以在后台用vi命令直接修改,也可以将该文件用ftp工具下载到本地电脑,修改后再上传覆盖,修改点如下:
a)修改$this->debug = TRUE; 表示打开debug日志
b)修改$this->log_file = "/yjdata/www/mail.log"; 表示输出日志到哪个地方
2、在后台,到上面$this->log_file指定的目录下用下面的命令创建mail.log文件,同时修改文件权限,命令如下
cd /yjdata/www/
touch mail.log
chmod 777 mail.log
 
3、上面的步骤完成后,再次做操作触发邮件的发送,比如注册用户、找回密码等等,这时候可以去查看日志,看看到底是什么原因,比如日志内容显示如下,Cannot connenct to relay host smtp.qq.com,然后就连接超时了。


4、网上很多类似问题的帖子说问题出现在服务器的环境配置上,检查方法如下:找到php.ini,查看两个参数,一个是allow_url_fopen,这个参数要设置成on;另一个是disable_functions,如果这个参数后面出现了fsock,fsockopen,则需要把这两个函数名去掉,完成后重启apache。不过这里不是这个原因导致的,因为这里的错误是,Error: Connection timed out (110),是连接超时,说明fsock方法是可用的,只是连不上邮件服务器;而前面说的服务器配置问题的错误会是Error: (),空,说明fsock方法不可用。按前面说的检查方法检查后发现配置的没问题,说明不是这个原因导致的。
 
5、那连接超时是什么原因导致的呢,一般我们配置的smtp服务器端口都是25,不过有的服务器或空间提供商把25端口给禁用了,比如阿里云就给禁用了,这个可以找相应的提供商确认一下。如果真是禁用了25端口,可以采用465端口,这个端口很多主流的邮件服务商像网易邮箱、QQ邮箱、阿里云邮箱也都支持,采用了465端口,织梦后台需要如下这么配置,注意, smtp服务器地址前面一定要加上ssl://,否则还是不可用。

 
6、这时候再重试,可以发送邮件了,查看日志显示如下

 
7、注意,问题解决后,记得还原include/mail.class.php,不在记录debug日志。

原文地址: https://www.imoban.me/baike/5.html

这篇关于Cannot connenct to relay host smtp.163.com (php邮件发送失败)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1025965

相关文章

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss