При тестировании синхронизации IMAP во время импорта из учётной записи IMAP был создан промежуточный пользователь для Group.email_username.
Пытаясь понять, что произошло, я заметил, что Group.find_by_email не учитывает Group.email_username, что требует как минимум установки Group.incoming_email с включением этого значения.
Шаги для воспроизведения:
включить синхронизацию IMAP
настроить параметры синхронизации электронной почты для группы, но оставить Group.incoming_email не настроенным
Спасибо @thoka, я посмотрел на это. Я думаю, вы правы в том, что в Group.find_by_email нужно добавить email_username, но в данном случае это не является причиной того, что пользователь группы попадает в стадию ожидания. На самом деле это происходит позже в обработчике входящих писем, где мы добавляем другие адреса к только что созданной теме. Важным моментом здесь является should_invite?
Который, в свою очередь, сравнивает адрес электронной почты с group_incoming_emails_regex:
Я думаю, нам нужно будет изменить это так, чтобы в этом регулярном выражении (или в другом) мы также сравнивали с email_username. До сих пор создание временного пользователя для группы не вызывало проблем, хотя я понимаю, что это выглядит немного запутанно/лишним. Мне потребуется провести тестирование после внесения изменений, чтобы убедиться, что временный пользователь для группы не создается по какой-то важной, пока неизвестной (мне) причине.