阿里云服务器gitlab邮箱配置OpenTimeout: execution expired

小伍
  • 27

1、服务器为阿里云服务器Linux Centos 7;
2、安装gitlab-ce-8.17.3;
3、邮箱配置163:

gitlab_rails['gitlab_email_from'] = 'username@163.com'
user['git_user_email'] = "username@163.com"

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "username@163.com"
gitlab_rails['smtp_password'] = "userpassword"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true

4、发送邮件报错 OpenTimeout: execution expired。

试过如下几种解决办法:
1、开启邮箱授权码,将密码换成授权码;
2、更换其他163邮箱;
3、更换gmail邮箱;

全试过依旧不行,错误信息还是 OpenTimeout: execution expired。
即使写成错误的密码,错误信息还是 OpenTimeout: execution expired。
更换端口为其他,如225,错误信息 ECONNREFUSED: Connection refused - connect(2) for "smtp.163.com" port 225。

已经折腾一天,百度谷歌各种搜索都无果,请高手指教。

有一种怀疑,是不是阿里云服务禁止smtp?

回复
阅读 11.4k
5 个回答
✓ 已被采纳

折腾一天,终于知道原因了。
阿里云服务器默认是屏蔽25端口的。
改用163邮箱的465端口即可。

惜缘
  • 1
新手上路,请多包涵

改成465会出现 end of file reached 错误,需要 加上这句
gitlab_rails['smtp_tls'] = true

Renny
  • 2
新手上路,请多包涵

换用465端口可能会出现 delivery error: Net::ReadTimeout 错误,还需要加上ssl设置:
ssl: true
详情可以参考这里

HaoH
  • 2
新手上路,请多包涵

试一试端口587

Jieay
  • 2
新手上路,请多包涵

1、修改gitlab.rb配置文件
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxx@company.com'
gitlab_rails['gitlab_email_reply_to'] = 'xxx@company.com'

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.company.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xxx@company.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "company.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = false

2、让配置文件生效
gitlab-ctl reconfigure
gitlab-ctl restart

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏