麒麟在线

当前位置:网站首页 / 技术 / 正文

Discuz X3.4配置smtp邮件发送一直失败的解决方法(以gmail为例)

今天帮一兄弟解决服务器discuz不能发邮件的问题,之前也有人找我帮忙解决,现在把解决思路写出来

以下是网络上的一些说法,全部试过都没有用:

网络说法一:

discuz 的smtp是通过php fsocketopen的方式发邮件的,确定一下php是否支持fsocketopen的函数,有可能php中禁用了这个函数
发邮件的代码在source/function/function_mail.php,比对错误日志看一下发邮件的代码执行到哪一步出现错误
发邮件的错误日志在data/log目录下,比如文件名201705_SMTP.php
检查discuz后台的邮件配置
这里要注意smtp配置的域名是ssl://smtp.qq.com

可是我的php没有禁用这个函数Discuz X3.4配置smtp邮件发送一直失败的解决方法(以gmail为例) 技术 第1张

网络说法二:

   自从网站从discuz 3.4升级到3.5后,由于自己技术水平有限,遇到的小麻烦不断,其中有一个问题,困扰我了1个多月,直到今天才算彻底解决,具体是怎么回事呢?就是3.4的时候能够正常发邮件,3.5居然不能发邮件了!设置都没有动过啊,原因出在哪里呢?
  查了日志文件,也只是显示很简单的一句话:CONNECT - Unable to connect to the SMTP server!其他信息都没有!于是怀疑是新版本的BUG,一直没管他,直到今天再次测试,还是不行,那就要想办法了。

Discuz X3.4配置smtp邮件发送一直失败的解决方法(以gmail为例) 技术 第2张

  先看后台的设置,妥妥的没有问题,以前一直是这样,发邮件好好的。现在却不行,是怎么道理?

Discuz X3.4配置smtp邮件发送一直失败的解决方法(以gmail为例) 技术 第3张

  测试时出现的提示就是这样:邮件发送返回错误信息,然后啥也没了。我百度了很久,各种攻略都看完了,甚至还检查了服务器各项配置、网关之类,统统无效!真就奇了怪了!最后抱着试试看的心态,准备自己电脑上测试一下。
  打开后台设置,添加邮箱时发现了一个问题:本地新添加时有超时30秒的默认项,而我网站后面的超时项里面没有设置数值!

Discuz X3.4配置smtp邮件发送一直失败的解决方法(以gmail为例) 技术 第4张

  我一想,会不会设置项没有数据,系统就将空白的超时时间转换成了0,远程服务器来不及反应就超时返回抛出错误了?于是我填写了30,保存后再测试发邮件。

Discuz X3.4配置smtp邮件发送一直失败的解决方法(以gmail为例) 技术 第5张

  果然,与前面的不同,停顿几秒后,系统显示测试邮件已发出!问题成功解决了!
  我已经不记得老版本时是不是有30秒的设置,但显然新版把空白默认为0还是不太合适的,有进一步的改进空间呀。


这个说法看起来很专业,但是该博主没有告诉我们怎么增加超时这个选项,事后证明与本项设置也无关

网络说法三:

有些云厂商不支持25端口,无法发送邮件

然而本人试过打开VPS的25、587、465端口然并卵,与端口根本无关

以下贴上正解:

一、了解POP3、IMAP和SMTP的基本概念

在配置谷歌邮箱的POP3/IMAP/SMTP接口之前,首先需要了解这三个协议的基本概念。POP3(Post Office Protocol 3)是一种用于接收电子邮件的协议,它将邮件从服务器上下载到本地计算机上,并在下载后从服务器上删除。IMAP(Internet Message Access Protocol)也是一种接收邮件的协议,但它允许用户在多个设备之间同步邮件,并保持邮件在服务器上的状态。SMTP(Simple Mail Transfer Protocol)则是一种用于发送电子邮件的协议。

二、谷歌邮箱POP3配置方法

要使用POP3协议配置谷歌邮箱,首先需要登录谷歌邮箱账户,并找到“设置”选项。在设置页面中,选择“转发和POP/IMAP”选项卡。在POP下载部分,启用POP并设置适当的设置。需要注意的是,谷歌邮箱默认不启用POP协议,因为POP协议会将邮件从服务器上删除,这可能导致用户在其他设备上无法访问这些邮件。因此,在使用POP协议之前,请确保您了解这一点,并根据自己的需求做出选择。

三、谷歌邮箱IMAP配置方法

与POP3协议相比,IMAP协议更适合在多设备之间同步邮件。要配置谷歌邮箱的IMAP接口,同样需要登录谷歌邮箱账户,并找到“设置”选项。在设置页面中,选择“转发和POP/IMAP”选项卡。在IMAP访问部分,启用IMAP并设置适当的设置。与POP3不同,谷歌邮箱默认启用IMAP协议。启用后,您可以在其他设备或邮件客户端上使用IMAP协议访问您的谷歌邮箱,并保持邮件在服务器上的状态。

四、谷歌邮箱SMTP配置方法

要使用SMTP协议发送电子邮件,您需要在邮件客户端中配置谷歌邮箱的SMTP服务器信息。谷歌邮箱的SMTP服务器地址是smtp.gmail.com,端口号通常为587(用于启动TLS)或465(用于SSL)。在配置SMTP时,您还需要提供您的谷歌邮箱用户名和密码,并启用“允许不够安全的应用”选项(尽管这存在安全风险,但对于某些应用程序可能是必要的)。配置完成后,您就可以使用SMTP协议通过谷歌邮箱发送电子邮件了。

根据以上,小结一下要点:

1、检查vps安装了postfix,这是邮件服务,必须要有

2、与端口无关,vps的25、587、465不用打开

3、用ssl协议配置gmail,端口是465,不是587哦

Discuz X3.4配置smtp邮件发送一直失败的解决方法(以gmail为例) 技术 第6张

推荐阅读

文章标签:

版权声明: 本文除特别说明外均由原创

本文链接: https://www.70ol.com/jishu/198.html,尊重共享,欢迎转载,请自觉添加本文链接,谢谢!

分享本文: 请填写您的分享代码。

呃 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。