discourse-doctor 工具可以发送测试电子邮件。此功能也应添加到 discourse-setup 工具中。在设置整个软件堆栈之前,请快速进行电子邮件测试,以验证用户输入的 SMTP 数据是否正常工作。正如注释所述,如果电子邮件设置不正确,该功能将无法运行。
如果安装人员输入的任何数据有误,这可以节省大量时间。
discourse-doctor 工具可以发送测试电子邮件。此功能也应添加到 discourse-setup 工具中。在设置整个软件堆栈之前,请快速进行电子邮件测试,以验证用户输入的 SMTP 数据是否正常工作。正如注释所述,如果电子邮件设置不正确,该功能将无法运行。
如果安装人员输入的任何数据有误,这可以节省大量时间。
嗯。看起来像这样进行半自动的 SMTP 测试是可行的:
echo Hello world > /tmp/mail.txt
curl -v smtp://$DISCOURSE_SMTP_ADDRESS:$DISCOURSE_SMTP_PORT \
--mail-from noreply@$DISCOURSE_HOSTNAME \
--mail-rcpt $(echo $DISCOURSE_DEVELOPER_EMAILS | cut -d ',' -f 1) \
--user $DISCOURSE_SMTP_USER_NAME:"$DISCOURSE_SMTP_PASSWORD" \
--upload-file /tmp/mail.txt
所以应该可以进行这样的测试。我担心它会有很多误报和漏报,但也许在失败时打印一个警告可以帮助一些人。
也许更好的主意是另一个脚本(discourse-mail-check?),它会在你遇到麻烦时进行一次快速而粗略的测试。
我只是希望在用户输入SMTP详细信息后直接进行测试。它会向用户提供的地址发送一封测试电子邮件,并询问用户是否收到电子邮件,如果收到,则继续安装。如果未收到,他们可以重新测试或更改SMTP配置并重试。
正如我在此处帖子中所述:Install Discourse on Amazon Web Services (AWS) with Lightsail, SES, and Route 53 - #4 by wal telnet 通过此处描述的方法运行完整的 discourse-setup 脚本之前,我能够发送测试电子邮件。
值得注意的是,我使用了端口 587 而不是那里显示的 25,并且您需要确保对您的 SMTP 用户名和密码进行 base64 编码。
该帖子中还链接了 AWS 提供的一个脚本,该脚本显示了如何使用 openssl 命令执行相同的操作(链接在此处;https://docs.aws.amazon.com/ses/latest/dg/creating-configuration-sets.html)。
如果您不使用 AWS SES 作为您的电子邮件服务器,您可能需要稍微调整一下脚本,但总的来说,我认为其中一个或两个脚本应该有助于您在安装前验证电子邮件(这就是我所做的)。
虽然我同意理想情况下应该有一种在安装前测试电子邮件的方法,但我认为最好将其作为 Discourse 的一个单独的独立脚本来发布,这样您就可以在不经历整个设置过程的情况下运行它,而该过程可能需要大约 10 分钟。