今天一起来看看如何搭建自己的邮件服务器和论坛服务,使用的工具分别为 Ewomail 和 Discourse。
搭建邮件服务器
安装 Ewomail 还是很简单的,它支持一键式安装。
(重要,如果服务器上有其他软件,特别是 MySQL 时,请慎重安装!)
使用官网方法安装
直接使用官方文档安装即可(http://doc.ewomail.com/docs/ewomail/install),安装的时候,需要指定一个域名地址,地址就写自己申请的域名,或者安装之后再修改也是可以的。
yum -y install git cd /root git clone https://github.com/gyxuehu/EwoMail.git cd /root/EwoMail/install #需要输入一个邮箱域名,不需要前缀,列如下面的ewomail.cn sh ./start.sh ewomail.cn
安装之后,会有 iptables,如果其他服务的端口不可访问,记得来检查下 iptables。
DNS 配置
需要准备好一个域名,并配置解析
如上图所示,需要增加一个 mail 的子域名,同时再增加一个 MX 类型的解析规则。
邮箱后台配置
上面两步完成之后,就可以打开邮箱管理后台了(http://IP:8010 (默认账号admin,密码ewomail123))
设置邮箱域名
可以添加邮箱的副域名
添加使用邮箱
添加邮箱,用于收发邮件
登陆客户端
Ewomail 提供了一个 WebMail 客户端,但是有时候登陆会存在问题。这里不再介绍。
我使用的是 Foxmail 客户端
新建账号
使用刚刚创建的邮箱登陆
设置服务器信息
如果密码,服务状态等信息都无误,点击创建之后,就成功创建了客户端。
接下来就可以发送邮件了,只是对于 QQ 邮箱,还是有被退信的危险,不过 163 邮箱我测试是成功的。
troubleshooting
如果以上配置完成之后,还存在问题,可以查看日志
/var/log/maillog
也可以修改配置文件中的相关信息
/etc/postfix/main.cf
基于 Discourse 搭建论坛
搭建 Discourse 论坛也很简单,直接使用 docker 形式安装即可。
Linux 版 docker 安装指南
https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
两个比较重要的配置,email 和 域名,需要在安装前就准备好,当然也可以先行安装,然后修改 app.yml 配置文件,再进行 rebuild 操作。
执行命令
./discourse-setup
命令行输入
Hostname for your Discourse? [discourse.example.com]: Email address for admin account(s)? [me@example.com,you@example.com]: SMTP server address? [smtp.example.com]: SMTP port? [587]: SMTP user name? [user@example.com]: SMTP password? [pa$$word]: Let's Encrypt account email? (ENTER to skip) [me@example.com]:
开始的安装,由于还没有 app.yml,所以有些配置不能做修改。
安装完成后,会生成一个目录
/var/discourse/containers
该目录下有一个 app.yml 文件
使用已经存在的 nginx 服务器
修改 app.yml 文件
templates: - "templates/postgres.template.yml" - "templates/redis.template.yml" - "templates/web.template.yml" - "templates/web.ratelimited.template.yml" - "templates/web.socketed.template.yml" ## Uncomment these two lines if you wish to add Lets Encrypt (https) #- "templates/web.ssl.template.yml" #- "templates/web.letsencrypt.ssl.template.yml" ## which TCP/IP ports should this container expose? ## If you want Discourse to share a port with another webserver like Apache or nginx, ## see https://meta.discourse.org/t/17247 for details ## expose: ## - "80:80" # http ## - "443:443" # https
增加 "templates/web.socketed.template.yml" 配置,并注释掉 http 和 https 所在行。
Email 配置
这里的 email 服务器使用上面搭建的自有服务器。
修改 app.yml 文件
域名配置
修改 app.yml 文件
设置 DISCOURSE_HOSTNAME 参数为自有域名,如:talk.example.com
DISCOURSE_DEVELOPER_EMAILS: 'admin@example.com' DISCOURSE_SMTP_ADDRESS: smtp.example.com DISCOURSE_SMTP_PORT: 25 DISCOURSE_SMTP_USER_NAME: admin@example.com DISCOURSE_SMTP_PASSWORD: "12345678" DISCOURSE_SMTP_ENABLE_START_TLS: false # (optional, default true)
以上操作之后,都需要执行命令
cd /var/discourse ./launcher stop app ./launcher rebuild app
操作完成后,Discourse 论坛基本配置完成,可以正常访问及发送邮件。
几个规避操作
创建管理员
如果邮件还是有问题,就没有办法使用管理员登陆论坛,此时,可以做一个规避操作。
执行如下命令,进入 app,创建管理员。
./launcher enter app rake admin:create exit
切换通知邮箱地址
还可以手动切换邮箱地址,以此来绕过设置的 Discourse 邮件系统
./launcher enter app rails r "SiteSetting.notification_email = 'discourse@yoursite.com'" exit
troubleshooting
进入 app 后,可以查看日志
./launcher enter app cd /var/www/discourse/log tail -f production.log
OK,今天就分享到这里。