IMAP同期ステージ:Group.incoming_emailがGroup.email_usernameに設定されていない新規ユーザー

IMAP 同期を試しに試している最中に、IMAP アカウントからのインポート時に Group.email_username に対してステージングユーザーが作成されました。

何が起きたのかを理解しようとしたところ、Group.find_by_emailGroup.email_username を考慮していないことがわかりました。そのため、少なくとも Group.incoming_email にこの値を含めるように設定する必要があります。

再現手順:

  • IMAP 同期を有効にする
  • グループでメール同期オプションを設定するが、Group.incoming_email は未設定のままにする
  • Group.email_username にメールを送信する
「いいね!」 1

IMAPはまだ少し開発途中でしょうか、@sam

Meta の本番環境でも実際に使用しており、十分にサポートされているはずです。

@martin さん、このレポートを少し確認してもらえますか?

@thoka さん、ありがとうございます。確認しました。Group.find_by_emailemail_username を追加する必要があるという点では、おっしゃる通りだと思います。ただし、今回のケースでグループのメールユーザーがステージングされる原因はそれではありません。実際には、受信側で新しく作成されたトピックに他のアドレスを追加する段階で発生します。ここで重要なのは should_invite? です。

これはその後、メールを group_incoming_emails_regex と比較します。

この正規表現、あるいは別の正規表現において、email_username とも比較するように変更する必要があると思います。現時点では、グループのステージングユーザーが作成されても問題はないと考えていましたが、少し散らかっているように見える、あるいは不要に見える点は理解できます。これを変更する際には、グループのステージングユーザーが何らかの現在私には不明な重要な理由で作成されないことを確認するために、いくつかのテストを行う必要があります。

「いいね!」 5

これは FEATURE: Use group SMTP settings for sending user notification emails (initial) by martin-brennan · Pull Request #13220 · discourse/discourse · GitHub で修正され、グループのメール設定 UI も最近大幅に刷新されました。ただし、IMAP は依然としてアルファ版の段階にあるため、その機能を使用する場合は自己責任となります。

「いいね!」 3