# Работает ли mail-receiver с arm?

**URL:** https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908
**Category:** Self-hosting
**Tags:** arm, mail-receiver
**Created:** [29.Октябрь.2023 04:20:07 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908 "2023-10-29T04:20:07Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![PrettyGirl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/prettygirl/32/330415_2.png) [@PrettyGirl](https://meta.discourse.org/u/PrettyGirl)
#### Post date: [29.Октябрь.2023 04:20:07 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/1 "2023-10-29T04:20:07Z")

</div>

> [@Discourse](#):
>
> `./launcher bootstrap mail-receiver`

У меня архитектура `ARM`, и при выполнении указанной команды возникают ошибки. Я полагаю, что этот плагин не подходит для `ARM`?

Есть ли какой-либо другой плагин для получения писем на архитектуру ARM?

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [29.Октябрь.2023 06:33:05 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/2 "2023-10-29T06:33:05Z")

</div>

Боюсь, я не знаком с `arm`, поэтому не могу посоветовать, подходит ли он или нет, но хотел лишь отметить, что это не плагин. Надеюсь, это просто путаница в терминологии, и вы не пытаетесь установить его как плагин, так как это не сработает. 🙂

---

<div class="post-metadata">

### Author: ![PrettyGirl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/prettygirl/32/330415_2.png) [@PrettyGirl](https://meta.discourse.org/u/PrettyGirl)
#### Post date: [29.Октябрь.2023 06:41:51 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/3 "2023-10-29T06:41:51Z")

</div>

Спасибо за ответ. Ах, моя ошибка, я думал, что это работает как плагин. Если у этого есть другое название, пожалуйста, сообщите. Мой сервер работает на архитектуре arm64, это новые чипы, которые, я полагаю, используются в Amazon EC2.

Я только что установил его, как объясняется в посте. Но он выдаёт ошибки. Похоже, что он не работает на arm64.

---

<div class="post-metadata">

### Author: ![Simon\_Manning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon_manning/32/198596_2.png) [@Simon\_Manning](https://meta.discourse.org/u/Simon_Manning)
#### Post date: [29.Октябрь.2023 10:22:09 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/4 "2023-10-29T10:22:09Z")

</div>

> [@PrettyGirl](#):
>
> Полагаю, этот плагин не подходит для `arm`?

Только для уточнения: вы имеете в виду, что вы успешно выполнили стандартную установку и у вас работает экземпляр Discourse на `arm`, однако настройка именно `mail-receiver` завершается ошибкой?

Какие ошибки вы видите? Если вы сможете предоставить сообщения об ошибках, это может помочь выявить причину. Будьте внимательны и проверьте, нет ли там чувствительной информации, которую нужно скрыть.

> [@PrettyGirl](#):
>
> Если есть другой термин, пожалуйста, сообщите.

Мне немного сложно (для меня) дать этому конкретный термин в контексте Discourse. «Под капотом» это просто полностью отдельное контейнерное приложение для почтового сервера, принимающего только входящую почту, которое намеренно настроено на доставку этих писем в Discourse через его API.

---

<div class="post-metadata">

### Author: ![PrettyGirl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/prettygirl/32/330415_2.png) [@PrettyGirl](https://meta.discourse.org/u/PrettyGirl)
#### Post date: [30.Октябрь.2023 08:01:52 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/5 "2023-10-30T08:01:52Z")

</div>

Да, это стандартная процедура установки Discourse. И, кажется, сам Discourse на архитектуре arm64 работает нормально.

Ошибки следующие:

```plaintext
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 была простая функция получения и отправки писем, то определённо стоило бы использовать его как официальную почтовую почту.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [30.Октябрь.2023 10:08:03 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/6 "2023-10-30T10:08:03Z")

</div>

> [@PrettyGirl](#):
>
> может иметь простую почтовую приёмку

Не существует понятия «простой почтовый сервер». Либо почтовый сервер есть, либо его нет. А почтовые серверы крайне сложны в настройке, очень уязвимы для превращения в спам-центры и в большинстве облачных/VPS-сервисов запрещены.

Именно поэтому Discourse будет опрашивать реальный почтовый сервер, забирать почту и пересылать отправленную на него. Если администратор настроил это.

---

<div class="post-metadata">

### Author: ![PrettyGirl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/prettygirl/32/330415_2.png) [@PrettyGirl](https://meta.discourse.org/u/PrettyGirl)
#### Post date: [30.Октябрь.2023 12:12:13 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/7 "2023-10-30T12:12:13Z")

</div>

Кажется, вы меня неправильно поняли.

Я имею в виду не «создание почтового сервера», а простой, но удобный интерфейс (UX) для написания (отправки) и чтения (получения) писем, чтобы мы могли отвечать на официальные письма, которые получаем.

Разве AWS Simple Email Service (SES) уже не занимается контролем спама и т. п.? Нам нужно лишь обеспечить UX в Discourse, чтобы у нас был приятный, но простой почтовый ящик и редактор писем.

Не совсем уверен, что создание одностраничного UX в Discourse — это так уж сложно (ведь у нас уже есть встроенный сервер, и мы также можем использовать AWS SES через Discourse).

---

<div class="post-metadata">

### Author: ![Simon\_Manning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon_manning/32/198596_2.png) [@Simon\_Manning](https://meta.discourse.org/u/Simon_Manning)
#### Post date: [30.Октябрь.2023 14:47:34 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/8 "2023-10-30T14:47:34Z")

</div>

> [@PrettyGirl](#):
>
> ```plaintext
> ПРЕДУПРЕЖДЕНИЕ: Запрошенная платформа образа (linux/amd64) не совпадает с обнаруженной платформой хоста (linux/arm64/v8), и конкретная платформа не была запрошена
> 
> ```

Для базового образа Discourse утилита `launcher` определяет запуск на архитектуре arm64 и переключается на образ для arm64, выдавая предупреждение о том, что это экспериментальная функция. То же самое не происходит для `mail-receiver`, и, судя по изображениям на Docker Hub, версии для arm64, похоже, не существует.

В голову приходят два очевидных варианта:

1. Переключиться на экземпляр EC2 архитектуры amd64. Это даст вам установку Discourse без статуса «экспериментальная» и позволит установить `mail-receiver` вместе с ней.
2. Добавить второй экземпляр EC2 — самый минимальный вариант с архитектурой amd64 (t3a.nano, если не ошибаюсь), и установить `mail-receiver` на него.

Не имеет значения, где именно будет работать `mail-receiver`. Главное, чтобы DNS MX-запись для вашего адреса «ответа по электронной почте» надежно указывала на него, и чтобы он мог подключаться к вашему экземпляру Discourse.

> [@PrettyGirl](#):
>
> Лучше иметь простой, но приятный интерфейс (UX) для составления (отправки писем) и чтения (входящих писем), чтобы мы могли использовать его для ответов на официальные письма, которые мы получаем.

Если речь идет об обработке писем на адреса вроде `info@вашакомпания.com`, `sales@вашакомпания.com`, `support@вашакомпания.com` и т. д., то, по-моему, групповая переписка даст вам то, что вы ищете.

То есть, после того как `mail-receiver` заработает, вы сможете создать соответствующие группы в Discourse и назначить этим группам один или несколько `пользовательских адресов входящей почты`. При просмотре своих личных сообщений вы увидите почтовые ящики и прочее для любых групп, в которые вы входите.

Если вы используете этот домен для корпоративной почты, например `prettygirl@вашакомпания.com`, то вам нужно будет настроить что-то у вашего провайдера электронной почты, чтобы направлять определенные адреса (например, `info@`) в Discourse. В зависимости от того, что предлагает ваш провайдер, это может быть сложно реализовать так, чтобы письма поступали в Discourse с правильными адресами отправителя. Вы не можете просто пересылать их, так как Discourse будет видеть все письма как исходящие от вашего собственного адреса, а не от оригинального отправителя.

В Microsoft 365 / Exchange сработает комбинация коннектора для маршрутизации в `mail-receiver` и правил транспортировки, заставляющих определенные письма использовать этот коннектор.

Работа с электронной почтой — дело сложное. `mail-receiver` разработан для упрощения ответов на уведомления по электронной почте и создания тем (включая новые сообщения в группы), где используемый домен не пересекается с существующими почтовыми сервисами. За пределами этой сферы вы попадаете в неподдерживаемую продвинутую область, где, возможно, «инструмент не был спроектирован для такого использования».

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30.Октябрь.2023 14:53:46 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/9 "2023-10-30T14:53:46Z")

</div>

Ответ на вопрос, заданный в заголовке, — «нет».

> [@Simon\_Manning](#):
>
> На ум приходят два очевидных варианта:
> 
> 1. Переключиться на экземпляр EC2 архитектуры amd64. Это обеспечит неэкспериментальную установку Discourse и позволит установить `mail-receiver` рядом с ней.
> 2. Добавить второй экземпляр EC2 — самый миниатюрный вариант с архитектурой amd64 (я думаю, t3a.nano) — и установить `mail-receiver` на него.

Вариант `1` — это то, что я считал правильным с самого начала. На данный момент это рекомендуемое и поддерживаемое решение.

Я видел недавнюю активность в `discourse_docker` по расширению поддержки ARM, но, похоже, маловероятно, что поддержка mail receiver для ARM будет добавлена в ближайшее время. Но это лишь предположение. Я не контролирую этот вопрос и знаю далеко не всё.

Другой вариант — разобраться, как обеспечить поддержку mail-receiver для ARM, и отправить pull request.

Если вы очень, очень, очень любите ARM, то можете найти полноценный mail receiver с почтовыми ящиками и всем остальным и управлять множеством почтовых ящиков.

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [03.Ноябрь.2023 00:47:43 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/10 "2023-11-03T00:47:43Z")

</div>

Поддержка `mail-receiver` на ARM-системах, безусловно, возможна. В коде нет ничего специфичного для amd64 (по крайней мере, так было на момент создания, и я не могу представить, чтобы были внесены какие-либо существенные изменения, опровергающие это предположение). Всё сводится к тому, что разработчики Docker-образа должны собрать версию для arm64, как они уже делают для amd64.

Кто-то также может создать неофициальную сборку и разместить её где-либо, вместе с инструкциями по внесению однострочного изменения в шаблон `pups`, либо вы можете выполнить локальную сборку самостоятельно из [репозитория](https://github.com/discourse/mail-receiver) на вашей системе arm64.

---

<div class="post-metadata">

### Author: ![Simon\_Manning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon_manning/32/198596_2.png) [@Simon\_Manning](https://meta.discourse.org/u/Simon_Manning)
#### Post date: [03.Ноябрь.2023 11:49:13 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/11 "2023-11-03T11:49:13Z")

</div>

> [@Matt Palmer](#):
>
> Там нет ничего специфичного для amd64 (или, по крайней мере, не было на момент создания, и я не могу представить, чтобы были внесены какие-либо существенные изменения, опровергающие это предположение).

Есть `socketee`, который загружается из GitHub в `/usr/local/bin` как часть Dockerfile. Это бинарный файл для x86\_64, поэтому он не сработает, однако, похоже, он используется только при явной настройке.

> <https://github.com/discourse/mail-receiver/blob/08a25ae38f80115dc87fe05359f274210c99ea83/README.md?plain=1#L61C1-L63>

В частности, описанная выше функция не сработает на arm64, так как `socketee` не сможет выполниться. Я не вижу ничего другого, что не работало бы при сборке для arm64.

> [@Matt Palmer](#):
>
> Это просто вопрос того, чтобы разработчики образа Docker создали сборку образа для arm64, как они уже делают для amd64.

Я не на 100% уверен, но по поверхностному наблюдению кажется, что добавление этих строк в файл `build` может решить задачу:

```plaintext
docker build --platform linux/arm64 --build-arg=http_proxy=$http_proxy -t discourse/mail-receiver:$1 .
docker push discourse/mail-receiver:${1}_arm64

```

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [07.Ноябрь.2023 22:46:56 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/12 "2023-11-07T22:46:56Z")

</div>

> [@Simon Manning](#):
>
> Существует утилита `socketee`, которая загружается из GitHub в `/usr/local/bin` как часть Dockerfile. Это бинарный файл для архитектуры x86\_64, поэтому он не будет работать, однако, похоже, он используется только в случае явной настройки.

Да, я исключил это из своего анализа, потому что _крайне_ маловероятно, что кто-либо, кроме CDCK, будет использовать его, так как он был включен для очень узкой цели — централизации логов Postfix. Это то, что обычный пользователь `mail-receiver`, скорее всего, делать не будет.

---

<div class="post-metadata">

### Author: ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)
#### Post date: [20.Декабрь.2023 14:41:05 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/13 "2023-12-20T14:41:05Z")

</div>

Если `mail-receiver` не работает на ARM, **и** IMAP работает только с GMail, это **очень** ограничивает. Это первый раз, когда я вижу :discourse:, работающий в моей тени, и это меня очень огорчает.

---

<div class="post-metadata">

### Author: ![mpalmer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mpalmer/32/45740_2.png) [@mpalmer](https://meta.discourse.org/u/mpalmer)
#### Post date: [16.Февраль.2024 07:36:07 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/14 "2024-02-16T07:36:07Z")

</div>

Если кому-то это интересно, я собрал образ для архитектуры arm64 и загрузил его в репозиторий `womble/discourse-mail-receiver:arm64`, чтобы помочь вам до тех пор, пока основная команда не подготовит официальный образ. Подробнее об ограничениях (на данный момент нет поддержки `socketee`; я добавлю её, если кто-то скажет, что это необходимо), способах использования и порядке сообщения о проблемах (то есть «сообщайте мне, а не основной команде») читайте в [README моей ветки](https://github.com/mpalmer/discourse-mail-receiver/tree/arm64-build#arm64-support).

---

<div class="post-metadata">

### Author: ![Firefishy](https://avatars.discourse-cdn.com/v4/letter/f/77aa72/32.png) [@Firefishy](https://meta.discourse.org/u/Firefishy)
#### Post date: [22.Август.2025 00:53:02 UTC](https://meta.discourse.org/t/does-the-mail-receiver-work-with-arm/283908/15 "2025-08-22T00:53:02Z")

</div>

Я отправил PR с удалением `socketee` [Remove socketee support by Firefishy · Pull Request #28 · discourse/mail-receiver · GitHub](https://github.com/discourse/mail-receiver/pull/28)

Также я с радостью отправлю PR с изменениями для приведения `mail-receiver` в соответствие с процессом сборки для ARM64, используемым в [discourse\_docker/.github/workflows/push-web-only.yml at main · discourse/discourse\_docker · GitHub](https://github.com/discourse/discourse_docker/blob/main/.github/workflows/push-web-only.yml)
