我在 ARM 架构上,并且该命令会引发错误。我猜这个插件不适用于 arm?
是否有其他插件可以接收 arm 的邮件?
我在 ARM 架构上,并且该命令会引发错误。我猜这个插件不适用于 arm?
是否有其他插件可以接收 arm 的邮件?
抱歉,我对 arm 不熟悉,所以无法就它是否不合适提出建议,但只是想指出这不是一个插件。不过希望这只是术语上的混淆,你并没有试图将其安装为插件,因为那样是行不通的。![]()
感谢您的回复。啊,我的错,我以为它像一个插件。如果它有不同的术语,请告诉我。我的服务器运行在 arm64 上,我猜是亚马逊 EC2 上的新芯片。
我刚按照帖子中的说明安装了它。但它会报错。看起来它在 arm64 上不起作用。
为了澄清一下,您的意思是您已经成功完成了标准安装并在 arm 上运行了一个 Discourse 实例,但是设置 mail-receiver 特别失败了?
您看到的是什么错误?如果您能提供错误消息,也许有助于找出原因。请注意检查是否有需要隐藏的敏感信息。
很难(对我来说)给它一个与 Discourse 相关的特定术语。它本质上只是一个完全独立的、仅接收邮件的服务器的容器应用程序,该应用程序碰巧(故意)设置为通过其 API 将这些邮件传递给 Discourse。
是的,这是安装 discourse 的标准安装程序,而且 discourse 在 arm64 上运行得很好。
错误如下:
Status: Downloaded newer image for discourse/mail-receiver:release
docker.io/discourse/mail-receiver:release
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec /usr/bin/gem: exec format error
cd /pups && /pups/bin/pups --stdin
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
我暂时开始使用 aws WorkMail,但如果 discourse 具有简单的邮件接收和撰写功能,那么将其用作官方邮件收件箱绝对值得。
没有所谓的简单邮件服务器。要么有邮件服务器,要么没有。邮件服务器极其复杂,非常容易变成垃圾邮件中心,并且在大多数云/VPS服务中被禁止。
这就是为什么 Discourse 会轮询一个真实的邮件服务器,接收邮件并将其发送出去。前提是管理员已经设置好了。
您可能误会我的意思了。
我不是指“创建邮件服务器”。而是指提供一个简单而美观的界面(UX)来撰写(发送电子邮件)和阅读(接收的电子邮件),以便我们可以用它来回复收到的官方邮件。
AWS 的“简单邮件服务 (SES)”不是已经控制垃圾邮件等了吗?我们只需要在 discourse 中提供 UX,这样我们就可以拥有一个美观而简单的邮件收件箱和撰写器。
我不太确定在 discourse 中提供一个单页 UX 是否复杂(因为 discourse 中已经内置了服务器,并且我们可以通过 discourse 使用 AWS SES)。
对于 Discourse 基础镜像,launcher 工具在 arm64 上运行时会检测到并切换到 arm64 镜像,并发出一个关于其处于实验阶段的警告。对于 mail-receiver 则不会发生这种情况,查看 Docker Hub 上的镜像,似乎不存在 arm64 版本。
我想到了两个显而易见的选项:
mail-receiver。mail-receiver 安装到该实例上。mail-receiver 放在哪里并不重要,您“通过电子邮件回复”地址的 DNS MX 记录只需可靠地指向它,并且它需要能够连接到您的 Discourse 实例。
如果这是指处理像 info@yourcompany.com、sales@yourcompany.com、support@yourcompany.com 等地址的电子邮件,那么我认为群组消息传递将为您提供所需的功能。
也就是说,在您成功运行 mail-receiver 后,您可以创建相应的 Discourse 群组,并为这些群组分配一个或多个“自定义入站电子邮件地址”。当查看您自己的用户消息时,您将看到您所属的任何群组的收件箱等。
如果您将此域名用于员工电子邮件,例如 prettygirl@yourcompany.com,那么您需要与您的电子邮件提供商进行设置,以便将特定地址(例如 info@)发送到 Discourse。根据您的电子邮件提供商提供的功能,将电子邮件正确地发送到 Discourse(具有正确的发件人地址)可能会很困难——您不能仅仅转发它们,因为 Discourse 会将所有邮件视为来自您自己的地址,而不是原始发件人。
在 Microsoft 365 / Exchange 中,结合使用连接器路由到 mail-receiver 和传输规则以使特定电子邮件使用该连接器将起作用。
电子邮件处理很复杂,mail-receiver 旨在简化回复电子邮件通知和创建主题(包括发送给群组的新消息),其中使用的域名不与现有电子邮件服务重叠。除此之外,您将进入不受支持的高级领域,可能处于“它不是这样设计的”的境地。
标题中提出的问题的答案是“否”。
1 是我从一开始就想到的。这是目前推荐和支持的解决方案。
我最近在 discourse_docker 上看到了一些关于增加对 ARM 支持的行动,但我认为,在 ARM 上支持 mail receiver 似乎不太可能很快被添加。但这只是一个猜测。我对此无能为力,而且有很多事情我不知道。
另一种方法是找出如何让 ARM 支持 mail-receiver 并提交一个 PR。
如果您非常非常喜欢 ARM,那么您可以找到一个功能齐全的 mail receiver,包含邮箱等所有功能,并管理一堆邮箱。
完全有可能在 ARM 系统上支持 mail-receiver。其中没有 amd64 特定的内容(或者说,至少在我制作它的时候没有,而且我无法想象会有任何重大更改使该假设无效)。这仅仅是 Docker 镜像维护者为 arm64 构建镜像的问题,就像他们已经为 amd64 所做的那样。
也可以有人做一个非官方的构建并将其放在某个地方,并附带关于 pups 模板所需的一行更改的说明,或者你可以在你运行的 arm64 系统上从仓库自行本地构建。
有一个 socketee,它作为 Dockerfile 的一部分从 GitHub 下载到 /usr/local/bin。这是一个 x86_64 二进制文件,所以它不起作用,但是看起来只有在明确配置时才会使用它。
特别是上面的功能在 arm64 上会失败,因为 socketee 将无法执行。我看不到其他任何东西在为 arm64 构建时不会正常工作。
我不确定,但从粗略的观察来看,似乎只需将这些行添加到 build 文件中即可完成:
docker build --platform linux/arm64 --build-arg=http_proxy=$http_proxy -t discourse/mail-receiver:$1 .
docker push discourse/mail-receiver:${1}_arm64
是的,我已将其从我的分析中排除,因为 CDCK 以外的任何人使用它的可能性都极其小,因为它包含的目的是为了集中 Postfix 日志——这几乎肯定不是普通 mail-receiver 消费者会做的事情。
如果 mail-receiver 在 ARM 上无法运行 并且 IMAP 只适用于 GMail,那么这将是 非常 限制性的。
这是我第一次看到
在我的阴影中运行,这让我非常难过。
如果有人感兴趣,我已经完成了一个 arm64 镜像构建,并将其推送到 womble/discourse-mail-receiver:arm64,以供大家在核心团队能够启动官方镜像构建之前使用。有关限制(目前没有 socketee;如果有人说需要,我会添加它)、如何使用以及如何报告问题(即“告诉我,而不是核心团队”)的更多详细信息,请参阅我的分支的 README。
我已提交 PR 删除 socketee Remove socketee support by Firefishy · Pull Request #28 · discourse/mail-receiver · GitHub
我也很乐意提交 PR 来使 mail-receiver 与 discourse_docker/.github/workflows/push-web-only.yml at main · discourse/discourse_docker · GitHub 使用的 ARM64 构建流程保持一致。