Discourse 邮件配置除错


(Erick Guan) #1

本文翻译于官方论坛,于 2015-09-12。

你已经安装了 Discourse,但是邮件好像没有工作。

这意味着你没法以管理员身份登录进行最后设置!

让我们来出错!

你输入了正确的邮件设置了么?

再次确认你的 app.yml

  • 你正确填写了 SMTP 地址、SMTP 用户名和 SMTP 密码字段了么?是 Mandrill 提供给你的么?(或是其他服务商)

  • 确定你复制和拷贝了邮件运营商给你的密码 – 不要手动输入。

  • DISCOURSE_DEVELOPER_EMAILS 的值是否用单引号包括了?'像这样'

  • 值和邮件段的设置是否对齐了?YML 文件是对齐敏感的。每一行开头中多一个空格都会导致问题。

  • 你从行首删除了 YML 注释符号 # 了么?

一个有效的 app.yml 邮件设置端应该像这样:

DISCOURSE_DEVELOPER_EMAILS: 'name@example.com'
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: name@example.com
DISCOURSE_SMTP_PASSWORD: aUd34cdWKCu6CTjfoH7ykk

注意他们是对齐的,在前面没有 # 符号,并且开发者邮件字段有单引号包括。

如果你在 app.yml 发现了错误并且更改了,你 一定 要重建容器来让新设置生效!

cd /var/discourse/
./launcher rebuild app

Digital Ocean 会封禁你的邮件么?(服务器端)

我们收到过多个被证实的报告,其中至 Digital Ocean droplets 封禁了出站邮件,而没有声明原因。你可以试试在命令行中确认一下:

telnet smtp.mandrillapp.com 587

如果这样没法连接,你几乎肯定是被封禁了。(如果你真的连接上了,要退出 SMTP 连接,你需要用键盘快捷键ctrl+],然后输入 quit 退出 telnet。)

如果是这样联系 DO 客服并且确保你的邮件没有被 DO 封禁。

SES 封禁了默认注册发送地址?

Amazon 的 SES 服务不会发送未知的发件地址。然而,在新的 Discourse 安装中,默认的邮件地址将设置为域名自己,如 noreply@forum.example.com

如果你在第一次注册时碰到了这类问题,你有几个选择:

  1. 使用 Mailgun 完成你的第一个管理员注册,然后在设置中更改 notification emailcontact email,最后再切换为 SES

  2. 使用 rake admin:create 创建你的管理员账户。

    ./launcher enter app
    rake admin:create
    exit
    
  3. 使用 Rails 命令行设置 notification email address

    ./launcher enter app
    rails r "SiteSetting.notification_email = 'discourse@yoursite.com'"
    exit
    

你为你的域名正确设置了 DKIM 和 SPF 记录了吗?

看看 Mandrill 的页面 how to enter these crucial DNS records for DKIM and SPF,否则你的部分邮件可能没法到达。

排错帖子集合:


QQ企业邮箱设置求助
邮箱收不到,使用命令也不行
请教下关于安装时候,管理员账户邮件验证的问题
在大陆地区的云上部署 Discourse
配不成功的 SendCloud 邮箱,特来求助~
30 分钟内在云上部署 Discourse
(Digital Tree) #2

我的安装经历中,邮件问题是 notification email address 和配置文件中的邮箱不一致导致邮件服务器拒绝发送。

我是这么找到问题的原因的:

./launcher enter app
su postgres
psql
$ \c discourse
$ select * from email_tokens;

然后手动拼 URL 激活管理员用户,在后台找到 email 的发送日志,提示 501 mail from address must be same as authorization user,然后我就意识到是发送邮箱配置错误的问题,在后台设置里改掉即可。

此问题通常发生在论坛域名和邮箱域名不同的情况下。


(猪猪的好猪猪) #3

在安装过程中我使用163邮箱一直没有用,然而我也使用了sendCloud服务,调试sendCloud服务的时候发现sendCloud需要发信模板,这个发信模板需要通过sendCloud的审批才行。因此我就再找dicourse邮件的模板是否可以调整,有人了解吗?

另外,如果实在想体验,可以用下面方法添加admin用户:

./launcher enter app
sudo apt-get install rake
rake admin:create 角色管理:创建


迁移 Discourse 至另一台服务器
(Erick Guan) #4

1.5.0 beta 里[定制]里的[文本内容]可以修改。


#5

我安装discourse后也不能发送邮件。在后台管理面板中显示:请检查 app.yml 文件是否正确配置了邮件服务器。

我使用了google apps for work的邮件服务器,使用端口465,我想有可能是端口587,我现在想尝试在app.yml中进行修改,可是不知道如何进入。

Last login: Sun Feb 14 10:18:48 2016 from f051212128.adsl.alicedsl.de
root@discourse:~# cd /var/discourse
root@discourse:/var/discourse# ./launcher enter app
root@discourse:/#

然后我该输入什么什么命令行才能编辑app.yml?


(Erick Guan) #6

不需要进入容器,直接修改 /var/discourse/containers/app.yml


#7

谢谢这么快的回复:grinning:。那我现在已经进入了容器,该怎么退出?就是往上回一步。


#8
Last login: Mon Feb 15 01:38:49 2016 from x4db43b91.dyn.telefonica.de
root@discourse:~# /var/discourse/containers/app.yml
-bash: /var/discourse/containers/app.yml: Permission denied
root@discourse:~#

我尝试直接进入,还是不行啊,是我弄错了吗?


#9
root@discourse:/var/discourse# nano containers/app.yml
  GNU nano 2.2.6           File: containers/app.yml

##
## After making changes to this file, you MUST rebuild for any changes
## to take effect in your live Discourse instance:
##
## /var/discourse/launcher rebuild app
##
## Make sure to obey YAML syntax! You can use this site to help check:
## http://www.yamllint.com/

## this is the all-in-one, standalone Discourse Docker container template

# You may add rate limiting by uncommenting the web.ratelimited template.
# Out of the box it allows 12 reqs a second per ip, and 100 per minute per ip
# This is configurable by amending the params in this file

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
                               [ Read 103 lines ]
^G Get Help  ^O WriteOut  ^R Read File ^Y Prev Page ^K Cut Text  ^C Cur Pos
^X Exit      ^J Justify   ^W Where Is  ^V Next Page ^U UnCut Text^T To Spell

现在怎么进入编辑呢?就是这一部分内容。
DISCOURSE_SMTP_ADDRESS: 'smtp.gmail.com
DISCOURSE_SMTP_AUTHENTICATION: 'plain’
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 'my.name@gmail.com
DISCOURSE_SMTP_PASSWORD: 'myPa$$word’
DISCOURSE_SMTP_ENABLE_START_TLS: true


(Erick Guan) #10

你不是编辑好了么?编辑完成 rebuild.


(Erick Guan) #11

我已经移动了 1 个帖子到了一个已存在的主题:点击discourse注册邮件中激活链接失败


(Shaman) #12
./launcher enter app
rake admin:create
exit

这个非常 Work


(Star) #13

大大您好,我有个问题想请教。希望各位大神有空看到指点一下!
我用的是mailgun,境外的服务器,smtp设置如下安装成功了。
888
但是收不到注册邮件,心绞痛啊!踩了无数坑,最后换了境外服务器在安装成功,上来就当头给了我一棒,这让小菜怎么活?后来尝试改DISCOURSE_SMTP_PORT: 587,但是再重建容器时出错了,是编辑完以后保存了就./launcher rebuild app吗?我这样操作后又出错了:
777
听说mailgun使用要绑定信用卡?难道是因为我没绑不能使用吗?
我的DNS都解析成功的啊,这个样子的应该能用吧?

实在不行想到用mailjet吧,


直接用它给的这个可以吗???

关键是现在改什么初始化 Discourse他都报错,我是哪里操作不对吗?
再次感谢各位大神了!