# Поддержка IMAP для групповых почтовых ящиков

**URL:** https://meta.discourse.org/t/imap-support-for-group-inboxes/160588
**Category:** Announcements
**Tags:** new-feature
**Created:** [12.Август.2020 05:03:51 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588 "2020-08-12T05:03:51Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [12.Август.2020 05:03:51 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/1 "2020-08-12T05:03:51Z")

</div>

🚨 **Мы удаляем поддержку IMAP в Discourse.** Подробнее читайте в этом посте: [IMAP support for group inboxes - #39 by martin](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/39?u=martin) . 🚨

* * *

Мы рады представить альфа-версию поддержки IMAP для групповых почтовых ящиков. Эта функция позволяет вводить учётные данные и настройки IMAP для каждой группы отдельно, чтобы синхронизировать групповые почтовые ящики с электронной почтой. 📧

⚠⚠ ⚠

**Это функция на стадии альфа-тестирования, поэтому она ещё не полностью завершена и отполирована. Вероятно, в ней есть ошибки; мы в настоящее время не поддерживаем её и не используем в рабочей среде. Используйте на свой страх и риск!**

⚠ ⚠ ⚠

### Преимущества

- Ваша группа сможет сразу начать использовать почтовые ящики Discourse, так как вся ваша существующая почта будет синхронизирована! 🏃‍♀️
- Ваша группа сможет синхронизировать сообщения между Discourse и вашим почтовым провайдером, что исключит единую точку отказа. Люди смогут отвечать как с почтового аккаунта, так и внутри Discourse, и всё будет синхронизировано ⚡
- Вам больше не нужно настраивать сложные правила пересылки с вашего почтового провайдера во входящие ящики Discourse. ➡
- Метки электронной почты будут синхронизироваться с тегами Discourse, что поможет поддерживать порядок 🗃
- Вы будете отвечать людям, пишущим на адрес вашей группы, _с того же адреса электронной почты, который вы настроили_, даже если отвечаете из Discourse. Больше никакой путаницы! 😌

### Функциональность

- Весь входящий и исходящий трафик будет синхронизироваться между IMAP-сервером и Discourse. На основе проанализированных писем будут создаваться соответствующие темы и ответы на посты. Ответы можно создавать как из Discourse, так и с IMAP-сервера, и всё будет синхронизировано!
- На письма можно отвечать как из группового почтового ящика Discourse, так и с почтового аккаунта.
- Теги, применённые к теме в Discourse, будут созданы как метки и применены к письму на IMAP-сервере (это зависит от провайдера).
- Письма, архивированные на IMAP-сервере, будут архивироваться в групповом почтовом ящике.
- Темы групповых личных сообщений, архивированные в Discourse, будут архивироваться на IMAP-сервере.
- Письма, удалённые на IMAP-сервере, приведут к удалению темы в групповом почтовом ящике.
- Темы групповых личных сообщений, удалённые в Discourse, будут удалены на IMAP-сервере.
- Письма, отправленные группами с включённой этой функцией, будут иметь адрес ответа, установленный в соответствии с именем пользователя электронной почты, указанным в настройках IMAP.

### Начало работы

Прежде всего, вам необходимо настроить некоторые параметры сайта перед тем, как вы сможете настроить эту функцию для группы.

- `enable imap` и `enable smtp` должны быть включены. IMAP используется для синхронизации с вашим почтовым сервером, а SMTP — для отправки писем с вашего почтового сервера.
- `tagging enabled` и `allow staff to tag pms` — оба параметра должны быть включены, так как синхронизация меток применяется к личным сообщениям.
- `enable imap write` — должно быть включено, если вы хотите, чтобы изменения, внесённые в Discourse, отражались на вашем почтовом сервере (например, теги, архивирование тем и удаление тем).
- `enable imap idle` — позволяет получать обновления в реальном времени с вашего почтового сервера, ЕСЛИ ваш сервер поддерживает IDLE. Это значительно ускоряет отражение изменений в вашем почтовом провайдере в Discourse. Рекомендуется включить эту опцию (например, Gmail её поддерживает). Если вы хотите узнать все подробности, вы можете [прочитать об этом в RFC для IDLE](https://tools.ietf.org/html/rfc2177).
- `imap polling period mins` — Если `IDLE` не поддерживается, это количество минут, которое мы ждём перед проверкой IMAP-сервера на наличие изменений. Это также время ожидания между отправкой изменений на IMAP-сервер из Discourse, если включено `enable imap write`. Минимальное значение — 1 минута.

Эти настройки можно оставить по умолчанию и изменить, если вы столкнётесь с проблемами синхронизации:

- `imap polling old emails` — Максимальное количество старых (обработанных) писем для обновления при каждой проверке IMAP-ящика (0 — все).
- `imap polling new emails` — Максимальное количество новых (необработанных) писем для обновления при каждой проверке IMAP-ящика.
- `imap batch import email` — Минимальное количество новых писем, которое запускает режим импорта (отключает оповещения о постах).

Если вы хотите, чтобы метки/теги синхронизировались с IMAP-сервером, необходимо включить параметры сайта `tagging enabled` и `allow staff to tag pms`.

Далее перейдите в группу, которую вы хотите синхронизировать с вашим IMAP-сервером, и заполните настройки.

 ![image](https://global.discourse-cdn.com/meta/original/3X/c/e/cef8ba98fb4d1dc61f67e61ed8bd9bf796151bf9.png)

Эти настройки зависят от провайдера; подробнее см. ниже. После ввода настроек и учётных данных нажмите «Сохранить изменения», и мы проверим учётные данные на серверах IMAP-провайдера. Если проверка успешна, список почтовых ящиков будет заполнен, и вам нужно выбрать тот, который вы хотите синхронизировать (рекомендации по этому вопросу также зависят от провайдера):

 ![image](https://global.discourse-cdn.com/meta/original/3X/a/b/ab349e7fe853a03d37c001a307c9702f6bef70b7.png)

Если проверка учётных данных не удалась, на странице будет показано сообщение об ошибке. **Важно понимать: SMTP-сервер, который вы указали, будет использоваться для отправки писем от имени аккаунта, указанного в полях «имя пользователя» и «пароль», а не основной SMTP-сервер Discourse, настроенный для массовой рассылки.**

Наконец, в вашем файле `app.yml` необходимо добавить `DISCOURSE_ENABLE_EMAIL_SYNC_DEMON: true` в секцию `env` и выполнить команду `./launcher rebuild`. Это запустит фоновый рабочий процесс, который начнёт синхронизацию писем! 🎆

### Информация, специфичная для провайдера

#### Gmail

- ⚠ Вы должны создать пароль приложения, иначе вам придётся включить «Доступ для менее безопасных приложений», что [Google в любом случае планирует отключить в ближайшее время](https://gsuiteupdates.googleblog.com/2019/12/less-secure-apps-oauth-google-username-password-incorrect.html). Используйте этот пароль вместо пароля вашей учётной записи Gmail в настройках IMAP. Подробнее см. на [Sign in with app passwords - Gmail Help](https://support.google.com/mail/answer/185833?hl=en-GB) . ⚠
- Убедитесь, что вы используете следующие настройки для SMTP и IMAP:
  - Порт IMAP: 987
  - Порт SMTP: 587
  - Сервер IMAP: [imap.gmail.com](http://imap.gmail.com)
  - Сервер SMTP: [smtp.gmail.com](http://smtp.gmail.com)
  - Используйте SSL как для SMTP, так и для IMAP

- Настоятельно рекомендуется (скоро это станет функцией интерфейса) выбирать только почтовый ящик «[Gmail]/Все письма» для синхронизации.
- Мы не удаляем письма в Gmail сразу, а только перемещаем их в корзину, когда тема удаляется в Discourse. Функция удаления «через 30 дней» в Gmail возьмёт на себя дальнейшую обработку.
- Теги, применённые к темам в Discourse, создадут метки в Gmail и применят их к потокам писем. Метки в Gmail также являются IMAP-почтовыми ящиками!

### Ограничения

Это функция на стадии альфа-тестирования, поэтому она ещё не полностью завершена и отполирована. В настоящее время действуют следующие ограничения:

- **В настоящее время поддерживается только Gmail как IMAP-провайдер**. У нас есть некоторая общая функциональность IMAP, но нет гарантии, что она будет работать. Следующей нашей большой целью является поддержка Outlook Online.
- Восстановление удалённых писем из корзины Gmail и отражение этого состояния в Discourse в настоящее время работает нестабильно.
- ⚠ Изменение почтового ящика для синхронизации после того, как письма уже были синхронизированы, не рекомендуется и может привести к множеству странных проблем. ⚠
- Для каждой группы можно синхронизировать только один почтовый ящик.
- Взаимодействие между группами — неизведанная территория и будет работать плохо (например, отправка письма [team@yoursite.com](mailto:team@yoursite.com) с [support@yoursite.com](mailto:support@yoursite.com), если каждый из этих адресов настроен для разных групп).

Также могут быть другие тонкие нюансы и недоработки, так как это альфа-функция.

#### Обратная связь и дорожная карта

Мы будем рады получить обратную связь от всех, кто использует эту функцию с Gmail. Я буду тем, кто займётся устранением любых ошибок и проблем. Отладка сейчас немного сложна, но я работаю над этим!

Следующие задачи, над которыми я буду работать:

- Улучшение отладки для упрощения просмотра логов IMAP и выявления проблем.
- Улучшение интерфейса групповой электронной почты для ограничения выбора почтовых ящиков в Gmail, а также для предотвращения или запрета изменения почтовых ящиков.
- Валидация для предотвращения использования одних и тех же данных IMAP для нескольких групп.
- Возможно, улучшение способа хранения настроек группового IMAP и улучшение пользовательского опыта при проверке учётных данных.
- Поддержка Outlook.

В настоящее время, пока мы устраняем недочёты, эта функция недоступна для наших хостинговых клиентов.

#### Особая благодарность 🙏

И @dan, и @j.jaffeux являются основными авторами этой огромной функции, над которой мы работали _очень долго_. Без их замечательной работы я не смог бы довести функцию до этого уровня и сделать это объявление 🎉.

---

<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: [12.Август.2020 07:09:11 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/3 "2020-08-12T07:09:11Z")

</div>

Это одновременно и прекрасные, и ужасные новости. Позвольте мне объяснить. С одной стороны, это отличная новость — интеграция IMAP с группами Discourse открывает ряд полезных решений для идентификации групп (с использованием правильного исходного адреса), упрощает работу нескольких пользователей с одной учётной записью IMAP (что нативно поддерживается плохо, например, нет общих состояний прочтения) и прокладывает путь к почтовым ящикам ActivityPub. С другой стороны, это ужасные новости, поскольку реализация отдаёт предпочтение гигантам электронной почты, превратившим федеративный сервис в во многом централизованную систему. Я понимаю привлекательность работы с крупными провайдерами, но надеюсь, что стандарт IMAP будет предпочтительнее провайдер-специфичных расширений, чтобы любой почтовый провайдер поддерживался, как только эта функция достигнет стадии бета-тестирования.

Отличная работа, что это стало возможным.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [12.Август.2020 08:18:04 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/4 "2020-08-12T08:18:04Z")

</div>

Есть веская причина, по которой эта функция считается «альфа» 🙂

Проблема с IMAP, насколько я могу судить со стороны, заключается в том, что нам приходится иметь дело с огромным количеством моментов, допускающих «различные толкования».

Мы, безусловно, хотим, чтобы это работало с большим количеством провайдеров; наши внутренние потребности тяготеют к крупному Google, потому что реальность такова, что мы используем Google в Discourse, поэтому мы решили сначала решить свою собственную проблему.

Pull-запросы, улучшающие работу с другими провайдерами, безусловно, приветствуются. В их отсутствие, по мере прохождения времени и роста интереса к использованию этой функции с другими провайдерами, мы добавим соответствующую поддержку.

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [12.Август.2020 08:52:56 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/5 "2020-08-12T08:52:56Z")

</div>

Это справедливое замечание. Как отметил @sam, мы в первую очередь сосредоточились на Gmail, поскольку используем его сами, и для нас это наиболее актуально. Однако я считаю, что наш базовый «общий» провайдер, хотя и не соответствует RFC на 100% и не обладает полным набором функций, довольно точно следует протоколу IMAP. См. [https://github.com/discourse/discourse/blob/master/lib/imap/providers/generic.rb](https://github.com/discourse/discourse/blob/master/lib/imap/providers/generic.rb). Единственные доработки, которые, как мне кажется, потребуются, — это специальная обработка архивации и удаления. Сейчас при удалении мы просто помечаем сообщение флагом `\Deleted` и отправляем команду `EXPUNGE`, но я знаю, что некоторые почтовые клиенты позволяют пользователю выбрать: выполнить это действие сразу или сначала переместить сообщение в папку «Корзина», а затем выполнить `EXPUNGE` и т. д. Не уверен, какой стандарт архивации принят для IMAP. У нас есть отдельный класс провайдера для Gmail, который переопределяет некоторые из этих общих методов.

Если у вас есть предложения по другим «общим» серверам или провайдерам IMAP, против которых я мог бы протестировать решение, это было бы очень полезно, так как Gmail имеет свою собственную уникальную обработку функций и [расширения IMAP для Gmail](https://developers.google.com/gmail/imap/imap-extensions).

Также, как отметил Сэм, любые pull-запросы с улучшениями приветствуются. В противном случае мы будем реагировать на запросы сообщества. Я предполагаю, что следующим крупным кейсом для организаций, желающих внедрить такую функциональность, станет Outlook (у него тоже есть свои уникальные правила: например, архивация реализуется как отдельная папка/почтовый ящик, а поддержка меток отсутствует).

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [12.Август.2020 08:57:22 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/6 "2020-08-12T08:57:22Z")

</div>

Выглядит очень интересно. Наша компания недавно перешла с собственного почтового сервера на G-Suite, и эта интеграция значительно упростит нам ответы на запросы клиентов и управление трекерами прогресса. У меня есть один вопрос к @martin. Мне не до конца ясно, будет ли использоваться SMTP Gmail для ответов на сообщения, полученные в групповом почтовом ящике, или же будет применяться массовый SMTP, настроенный для отправки писем от имени Discourse? Я вижу, что в описании плагина также упоминается SMTP Gmail, но мне всё же нужна ясность по этому вопросу.

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [12.Август.2020 08:58:56 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/7 "2020-08-12T08:58:56Z")

</div>

> [@itsbhanusharma](#):
>
> Мне неясно, будет ли использоваться SMTP Gmail для ответа на сообщения, полученные в групповом ящике, или будет использоваться массовый SMTP, настроенный для отправки писем от имени Discourse? Я вижу, что плагин также упоминает SMTP Gmail, но мне всё же нужна ясность по этому вопросу.

Для отправки ответов используется SMTP-сервер Gmail, так как вы отправляете ответы от имени учётной записи электронной почты, используемой для синхронизации IMAP! Я добавлю примечание об этом в первый пост, чтобы прояснить ситуацию.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [12.Август.2020 09:02:42 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/8 "2020-08-12T09:02:42Z")

</div>

Это действительно гениально. Я могу придумать столько вариантов использования этого. Молодцы @martin @dan @j.jaffeux 🙌

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [17.Август.2020 00:10:25 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/13 "2020-08-17T00:10:25Z")

</div>

Короткое обновление. На прошлой неделе я объединил эти два PR. Во-первых, исправление, чтобы тегирование не требовалось включать для работы архивации и удаления:

> <https://github.com/discourse/discourse/pull/10426>
>
> Previously we did an early return if either SiteSetting.tagging\_enabled or Site…Setting.allow\_staff\_to\_tag\_pms was false when updating the email on the IMAP server -- however this also stopped us from archiving or deleting emails if either of these were disabled.

Во-вторых, теперь я записываю все логи IMAP в базу данных для удобства проверки. Ежедневно будет выполняться задача по удалению логов старше 5 дней:

> <https://github.com/discourse/discourse/pull/10435>
>
> Convert all IMAP logging to write to a database table for easier inspection. The…se logs are cleaned up daily if they are \> 5 days old.
> 
> Logs can easily be watched in dev by setting \`DISCOURSE\_DEV\_LOG\_LEVEL=\\"debug\\"\` and running \`tail -f development.log | grep IMAP\`

---

<div class="post-metadata">

### Author: ![StanD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stand/32/115977_2.png) [@StanD](https://meta.discourse.org/u/StanD)
#### Post date: [21.Август.2020 22:47:07 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/14 "2020-08-21T22:47:07Z")

</div>

Это просто супер! Спасибо.

Хочу отметить, что мне пришлось создать пароль приложения в моем аккаунте Google, чтобы Discourse принял мое имя пользователя и пароль.

---

<div class="post-metadata">

### Author: ![sunjam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sunjam/32/175682_2.png) [@sunjam](https://meta.discourse.org/u/sunjam)
#### Post date: [23.Август.2020 15:25:20 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/15 "2020-08-23T15:25:20Z")

</div>

> [@StanD](#):
>
> Я должен сказать, мне пришлось создать пароль приложения в моей учётной записи Google, чтобы Discourse принял моё имя пользователя и пароль.

У вас включена двухфакторная аутентификация на стороне Google? Если да, то это стандартная практика.

---

<div class="post-metadata">

### Author: ![StanD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stand/32/115977_2.png) [@StanD](https://meta.discourse.org/u/StanD)
#### Post date: [23.Август.2020 16:34:48 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/16 "2020-08-23T16:34:48Z")

</div>

Да. Я полагаю, это требовалось для создания пароля приложения (хотя я точно не помню).

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [23.Август.2020 23:40:46 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/17 "2020-08-23T23:40:46Z")

</div>

> [@martin](#):
>
> Необходимо создать пароль приложения, иначе нужно включить «Доступ для менее защищённых приложений», что [Google в любом случае собирается отключить](https://gsuiteupdates.googleblog.com/2019/12/less-secure-apps-oauth-google-username-password-incorrect.html). Используйте этот пароль вместо пароля от аккаунта Gmail в настройках IMAP. Подробнее см. [Вход с использованием паролей приложений — Справка по Gmail](https://support.google.com/mail/answer/185833?hl=en-GB).

Это отмечено в первом посте 😉 В противном случае придётся проходить через невероятные сложности, чтобы аккаунт Gmail принял «менее защищённые приложения». В какой-то момент нам потребуется поддержка OAuth для Google, так как именно в этом направлении всё движется.

---

<div class="post-metadata">

### Author: ![StanD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stand/32/115977_2.png) [@StanD](https://meta.discourse.org/u/StanD)
#### Post date: [24.Август.2020 01:19:22 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/18 "2020-08-24T01:19:22Z")

</div>

> [@martin](#):
>
> Об этом сказано в первом посте

Ой! Я что-то упомянул, что мои навыки чтения оставляют желать лучшего? 🥴

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [24.Август.2020 01:25:23 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/19 "2020-08-24T01:25:23Z")

</div>

Ничего страшного! Это важный момент, поэтому я переместил его в начало списка Gmail и добавил несколько предупреждающих индикаторов. Спасибо, что пытались предупредить других об этом, чтобы сэкономить им время и нервы 🙂

---

<div class="post-metadata">

### Author: ![thoka](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thoka/32/115652_2.png) [@thoka](https://meta.discourse.org/u/thoka)
#### Post date: [06.Февраль.2021 01:10:35 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/20 "2021-02-06T01:10:35Z")

</div>

Я пытаюсь понять, почему не удаётся синхронизировать письма с IMAP-сервером Dovecot (к сожалению, у меня нет опыта работы с Ruby или Rails).

При чтении `imap_sync_logs` видно, что демон импорта зацикливается:

`UIDVALIDITY = 1612565899 не совпадает с ожидаемым 0, кэш IMAP сбрасывается, и происходит повторная синхронизация писем для почтового ящика INBOX`

Поэтому я задаюсь вопросом, не должно ли в этом случае обновляться значение `@group.imap_uid_validity`:

> <https://github.com/discourse/discourse/blob/f34fa999a2c8a4f3d0c477bef9401817c538b405/lib/imap/sync.rb#L47>

После ручного обновления этого значения демон импорта зацикливается в другом месте.

Dovecot не поддерживает `'LABELS'` в:

> <https://github.com/discourse/discourse/blob/f34fa999a2c8a4f3d0c477bef9401817c538b405/lib/imap/sync.rb#L238>

что приводит к ошибке `Net::IMAP::BadResponseError`, которая, к сожалению, не попадает в логи.

Теперь у меня возникают следующие вопросы:

- достаточно ли поддержки пользовательских флагов в Dovecot для двусторонней синхронизации с Discourse;
- как определить Dovecot в `lib/imap/providers/detector.rb`;
- как эмулировать функцию меток в провайдере для Dovecot.

…

---

<div class="post-metadata">

### Author: ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)
#### Post date: [07.Февраль.2021 23:39:10 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/21 "2021-02-07T23:39:10Z")

</div>

> [@thoka](#):
>
> голубятни

Синхронизация IMAP для общих почтовых ящиков всё ещё находится на ранней стадии разработки и в настоящее время поддерживает только Gmail. Теоретически вы могли бы написать провайдер для dovecot, но несколько недель назад я заметил, что в основном коде есть несколько мест, где используются функции, специфичные только для Gmail, и их необходимо перенести в код, специфичный для провайдера. Так что извините за это, но, возможно, вам стоит подождать, пока это не приблизится к стадии готовности к использованию.

---

<div class="post-metadata">

### Author: ![thoka](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thoka/32/115652_2.png) [@thoka](https://meta.discourse.org/u/thoka)
#### Post date: [08.Февраль.2021 14:54:11 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/22 "2021-02-08T14:54:11Z")

</div>

Полагаю, что `'LABELS'` — это нестандартная функция Gmail.  
Я хотел бы понять разницу между Google IMAP и стандартным IMAP.

Вот мое резюме на данный момент:

| стандартный IMAP | Google IMAP |
| --- | --- |
| архивированные письма хранятся в подпапках | все письма хранятся в одной папке   
 у архивированных сообщений отсутствует метка `\\INBOX` |
| пользовательские флаги хранятся вместе с системными флагами | хранит пользовательские флаги в виде меток |

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

Было бы достаточно:

- эмулировать метки в стандартном IMAP, разделив флаги на системные и пользовательские;
- обрабатывать `email_is_archived` на стороне провайдера (например, добавлять и проверять флаг “archived”);

чтобы запустить синхронизацию через стандартный IMAP?

Это затронет следующие строки:

> <https://github.com/discourse/discourse/blob/f34fa999a2c8a4f3d0c477bef9401817c538b405/lib/imap/sync.rb#L295>

> <https://github.com/discourse/discourse/blob/f34fa999a2c8a4f3d0c477bef9401817c538b405/lib/imap/sync.rb#L357>

> <https://github.com/discourse/discourse/blob/f34fa999a2c8a4f3d0c477bef9401817c538b405/lib/imap/sync.rb#L381>

Эта строка кажется мне странной:

> <https://github.com/discourse/discourse/blob/f34fa999a2c8a4f3d0c477bef9401817c538b405/lib/imap/sync.rb#L399>

Все системные флаги будут перезаписаны тегами Discourse.  
Правильно ли это обрабатывает все флаги IMAP (`\Answered, \Deleted, \Draft, \Flagged, \Recent и \Seen / $Forwarded, $MDNSent, $SubmitPending и $Submitted`)?

---

<div class="post-metadata">

### Author: ![StanD](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stand/32/115977_2.png) [@StanD](https://meta.discourse.org/u/StanD)
#### Post date: [29.Март.2021 02:58:00 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/25 "2021-03-29T02:58:00Z")

</div>

Я вернулся к этому вопросу после некоторого перерыва.

Мне не удалось разобраться, как правильно настроить заголовок `reply-to`. Я могу создать группу для синхронизации с конкретным аккаунтом Gmail, но при попытке ответить по электронной почте адрес в заголовке `reply-to` устанавливается в настроенный `уведомительный email` из Discourse, а не в IMAP-адрес.

Не упустил ли я что-то?

---

<div class="post-metadata">

### Author: ![mognet](https://avatars.discourse-cdn.com/v4/letter/m/f6c823/32.png) [@mognet](https://meta.discourse.org/u/mognet)
#### Post date: [16.Октябрь.2021 16:15:13 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/26 "2021-10-16T16:15:13Z")

</div>

Только что протестировал это с почтовым провайдером GoDaddy, но без успеха. С Gmail работает отлично, но, к сожалению, мы хотим использовать свой собственный домен. Есть ли какие-либо обновления, чтобы это было готово к запуску?

---

<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: [16.Октябрь.2021 17:58:30 UTC](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588/27 "2021-10-16T17:58:30Z")

</div>

Кстати, вы можете использовать свой собственный домен с Gmail (за деньги).

[Следующая страница](https://meta.discourse.org/t/imap-support-for-group-inboxes/160588.md?page=2)
