话语论坛,Discourse搭建教程,超级的简单,100%部署成功!

有没有什么方法跳过 587接口封闭的?

因为刚刚收到雨云技术人员的回复,说除了湖北服务器,其他的 email 接口都因为垃圾邮件滥用问题而直接封闭了接口了。

这里 手把手教你搭建一个雨云同款论坛-CSDN博客 有一个说法,说是只需要在 app.yml 中设置 expose 587:587 可以解决,实测是错误的。因为确实是服务器本身将587端口给封闭了。

这个封闭是机房的行为,所以雨云自己也无法干预。

所以,似乎只有一个办法,有什么办法能跳过这个587接口没?

在这里 smtp 端口465、587、25被封的解决办法 - gmloc 谈到了一种进行端口调整的方式,似乎可以将VPS 的 587端口映射为 588 接口,看起来测试还是成功的,但是不知道这种方法是否能适应“机房封闭了587接口”的问题,没太看懂要如何去调整,不知道有没有热心人确认是否能成功?

其实发信本身并不需要任何固定端口,而且你看的这篇csdn文章是我的

2 个赞

这个是看运气的,很多雨云的服务器都不封587,比如我有个朋友,他三台服务器(都是雨云的),都能正常发信,都是在美国,不过我有很多时候被封(我也不知道为啥)或者说,找我,我给你开不封邮件端口的

看到正主,这太好了

1. 如果您指的是docker内部的nginx

打开了 docker,看到了里面的 nginx.conf 的内容
首先进入 cd /var/discourse
然后进而docker ./launcher enter app
这个docker里面,没有vim, nano等文本处理工具,所以还要先安装一个vim,比如 apt update, apt install vim
然后在docker中打开配置文件 vim /etc/nginx/nginx.conf
看到下面的配置信息

/var/www/discourse# vim /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
daemon off;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 4000 ;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

但是,这个配置信息中似乎没有 stream,也不知道怎么设置成 588 与 587 端口的映射,所以似乎也不知道要进一步怎么办。

2. 如果指的是docker外部的nginx

似乎需要首先参考 Run other websites on the same machine as Discourse - Self-Hosting - Discourse Meta 这里,

停止discourse服务 ./launcher stop app
然后要自己在外部安装 nginx 与 certbot
sudo apt-get update && sudo apt-get install nginx certbot python3-certbot-nginx
然后在 app.yml 中修改listen 的信息,让docker 内部的discourse 不要 listen to 原始的port,而是listen to a file
添加- "templates/web.socketed.template.yml" # <-- Added
同时删除
# - "80:80" # http
# - "443:443" # https
然后重新./launcher rebuild app

至于docker 外部的 nginx 的配置,则需要创建nginx配置文件,标记清楚 docker 内部如何去在这里找到自己的新端口,但是这个配置文件似乎也没有 stream 的问题


具体要怎么做,还请大佬指教啊;毕竟一个论坛如果不能发邮件,实在是会太不方便了。

看起来是高级管理员啊~

谢谢大佬,不过我想如果技术上能绕过就不用额外麻烦了,因为安装整个论坛花费了4个小时时间,迁移到另一个服务器上去,通常也需要2小时以上,如果能不太麻烦,我还是倾向于直接找到一个方法,毕竟找到这样的方法,对大家都好。

我不是啥管理员,只是说手上有开465,587端口的服务器而已,对于说两个小时以上是不会的,基本10分钟左右就行了的

没记错的话是有smtp功能/插件的

你是说这个? https://meta.discourse.org/t/discourse-another-smtp/262532

但是这里也没有接口映射问题啊?

国内docker官方镜像源被墙了,文中的方法会自动Pulling from discourse/base,如果不改docker镜像源的话是拉不到的

问一下安装结束后页面访问不了是啥情况?curl了一下发现是curl: (56) Recv failure: Connection reset by peer
用的雨云应该不会封80和443端口?感觉是docker的问题但是找不出。。
系统是debian12+预装docker

1 个赞

雨云概率封端口,可能会封建。

终于找到组织了,我想哭,我用 1P面板里面的应用商店安装discourse,就是在邮件里一直出现错误,测试没有问题,但在网站注册发送邮件出错,错误是:Jobs::HandledExceptionWrapper: Wrapped Mail::Sendmail::DeliveryError: Delivery failed with exitstatus 127: "/usr/sbin/sendmail -i -f。
心累!!!

我看到了一个可能的解决方案,不过用 rebuild 测试时并没有成功;

不知道是否必须要 destroy app 然后 start app 才可以

ref [云服务器15] 全网最全!手把手搭建discourse论坛,100%完成

想问一下,我安装成功了,但是网站打不开,显示502是什么原因:smiling_face_with_tear:

重构一下容器

建议在发布技术文章时不要出现 100%成功 千万不能 等绝对性词汇,除非你已经真正理解了运行原理。

不要上面说 100% 成功,下面又是可能、也许、应该,提供结论但不提供原因,然后再跟一句:毕竟我也不是大神。

技术交流,要严谨,准确。可以表达观点,但不要写的像营销号一样。

1 个赞

如果想要写 100%,99.9%,99%,那需要为这个言论负责,搭建 4 遍以上是基本要求。

1 个赞

我来吃个瓜,你们聊