GITLAB连接阿里企业邮箱以及“end of file reached (EOFError)”报错解决。
本文最后更新于 328 天前,其中的信息可能已经有所发展或是发生改变。

前言

gitlab自带的poxfix经常因为这种或者那种原因发送不出邮件,所以我们常常会使用外部的SMTP服务来让gitlab能够对外发送邮件,本篇博文首先会讲述gitlab如何配置smtp服务,而且在尝试让gitlab对接阿里云邮箱的时候便会出现问题,明明一切都是配置好的,但是发送邮件收不到,在gitlab-rails控制台中输入发送邮件命令测试则会返回“end of file reached (EOFError)”错误或则连接超时,这篇博文也会讲述如何解决这个问题

SMTP的配置以及问题的处理

要处理问题,我们来从gitlab是如何配置SMTP邮件系统的过程中来说明解决方法

第一步:配置好阿里企业邮箱(这里不在赘述)

第二部:修改gitlab的配置文件,gitlab的配置文件位于/etc/gitlab/gitlab.rb文件中,打开的文件应该长这个样子

然后我们找一下SMTP服务相关的配置选项

gitlab中本来就有上面这些配置,但是被注释掉了,我们可以选择取消注释掉他们,或者是直接复制到下面另起一行(我选择的第二种),我们需要修改如下的配置

gitlab_rails[‘smtp_enable’] = true //这个用来启用smtp服务

gitlab_rails[‘smtp_address’] = “smtp.qiye.aliyun.com” //填写smtp发件服务器的地址,这边给的是阿里云smtp的地址

gitlab_rails[‘smtp_port’] = 465 //smtp端口号,阿里云采用的是465端口

gitlab_rails[‘smtp_user_name’] = “your@example.com” //smtp登陆邮箱

gitlab_rails[‘smtp_password’] = “passwd” //smtp账号的密码

gitlab_rails[‘smtp_authentication’] = “login” //验证方法选择login即可

配置完了发件服务器的设置,我们接下来就是要配置发送的邮件的设置,将配置文件向下进行滚动,我们也可以看到如下的配置(大概率是被注释掉的,请激活这些配置)

gitlab_rails[‘gitlab_email_enabled’] = true //激活gitlab的email服务

gitlab_rails[‘gitlab_email_from’] = ‘noreply@q2019.org’ //建议填写发信人的邮箱

gitlab_rails[‘gitlab_email_display_name’] = ‘noreply@q2019.org’ //邮箱展示的发件人名字

gitlab_rails[‘gitlab_email_reply_to’] = ‘noreply@q2019.org’ //展示的回信邮箱

gitlab_rails[‘gitlab_email_subject_suffix’] = ‘系统通知’ //在邮件中增加的字段

以上gitlab的smtp服务就配置完成了,进行下重载配置,在终端中执行

gitlab-ctl reconfigure

这样重新重载配置(执行完后等待一段时间,无需执行gitlab-ctl restart命令,如果宝塔面板部署的gitlab的ngnix出现故障,请查看我的这一片博文(点击访问)

验证配置是否成功

配置完成,我们就要进行验证,您可以通过两种方法来进行验证

第一种,(不推荐)直接尝试找回自己账号的密码,看自己的邮箱能不能收到邮件

第二种,(推荐) 在终端中输入以下的命令

gitlab-rails console

等待一段时间(我的服务器是等待了1分钟的时间)

然后在新出来的终端中输入以下的指令

Notify.test_email(‘收件人邮箱’, ‘邮件标题’, ‘邮件正文’).deliver_now

假如没有出错则大功告成!

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议,记得载明出处,(期待)。内容有问题?点此反馈
上一篇
下一篇