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

相关文章

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

PHP执行php.exe -v命令报错的解决方案

《PHP执行php.exe-v命令报错的解决方案》:本文主要介绍PHP执行php.exe-v命令报错的解决方案,文中通过图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录执行phpandroid.exe -v命令报错解决方案执行php.exe -v命令报错-PHP War

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们