Discourse での IMAP サポートを削除します。 詳細については、この投稿をご覧ください IMAP support for group inboxes - #39 by martin 。![]()
グループ受信箱向けの IMAP サポートのアルファ版をご紹介できることを嬉しく思います。この機能により、グループごとに IMAP 認証情報と設定を入力して、グループ受信箱を電子メール受信箱と同期できるようになります。![]()
![]()
![]()
これはアルファ段階の機能であり、100% 完成して洗練されたものではありません。動作しない可能性が非常に高く、現在は保守されておらず、本番環境で使用されていません。自己責任で使用してください!
![]()
メリット
- 既存のメールがすべて同期されるため、グループは 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の両方を有効にする必要があります。ラベル同期は PM にタグを適用するためです。enable imap write- Discourse での変更をメールサーバーに反映させたい場合(例えばタグの付け外し、トピックのアーカイブ、トピックの削除など)に有効にする必要があります。enable imap idle- メールサーバーが IDLE をサポートしている場合、メールサーバーからライブ更新を受信できます。これにより、メールプロバイダーから Discourse への変更反映が大幅に高速化されます。これをオンにすることをお勧めします(Gmail はサポートしています)。詳細については、IDLE の RFC をご覧ください。imap polling period mins-IDLEがサポートされていない場合、IMAP サーバーの変更を確認するまでの待ち時間(分)です。また、enable imap writeが有効な場合、Discourse から IMAP サーバーへ変更を送信するまでの待ち時間でもあります。最小値は 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 サーバーと同期させたいグループに入り、設定を入力します。
これらの設定はプロバイダー固有です。詳細については以下をご覧ください。設定と認証情報を入力したら「変更を保存」をクリックすると、IMAP プロバイダーのサーバーに対して認証情報が検証されます。成功するとメールボックスのリストが表示されるため、同期したいものを選択してください(この点に関するガイダンスもプロバイダー固有です)。
認証情報の検証が成功しなかった場合、ページにエラーメッセージが表示されます。明確に申し上げますと、入力されたユーザー名とパスワードのアカウントに代わってメールを送信するために使用されるのは、入力された SMTP サーバーであり、大量メール用に構成されたメインの Discourse SMTP ではありません。
最後に、app.yml ファイル内で env セクションに DISCOURSE_ENABLE_EMAIL_SYNC_DEMON: true を追加し、./launcher rebuild を実行してください。これでバックグラウンドワーカーが起動し、メールの同期が開始されます!![]()
プロバイダー固有の情報
Gmail
アプリパスワードを生成する必要があります。そうしないと「セキュリティの低いアプリへのアクセス」をオンにする必要があり、Google はいずれこれを廃止する予定です。IMAP 設定では、Gmail アカウントのパスワードの代わりにこのパスワードを使用してください。詳細については Sign in with app passwords - Gmail Help をご覧ください。
- SMTP と IMAP に以下の設定を使用してください。
- IMAP ポート: 987
- SMTP ポート: 587
- IMAP サーバー: imap.gmail.com
- SMTP サーバー: smtp.gmail.com
- SMTP と IMAP の両方で SSL を使用
- 強く推奨されます(まもなく UI 機能として実装予定)が、同期対象として「[Gmail]/All Mail」メールボックスのみを選択してください。
- Discourse でトピックが削除された場合、Gmail 内のメールは即座に削除されず、ゴミ箱受信箱に移動されます。その後、Gmail 内の「30 日後に削除」機能が引き継ぎます。
- Discourse トピックに適用されたタグは、Gmail でラベルを作成し、メールスレッドに適用します。Gmail のラベルは IMAP メールボックスでもあります!
制限事項
これはアルファ段階の機能であり、100% 完成して洗練されたものではありません。したがって、現在以下の制限が適用されます。
- 現在、IMAP プロバイダーとしてサポートされているのは Gmail のみです。 汎用的な IMAP 機能もありますが、動作する保証はありません。次は Outlook Online のサポートを大きな目標としています。
- Gmail のゴミ箱から削除されたメールを復活させ、その状態を Discourse に反映させる機能は現在不安定です。
すでにメールが同期された後に同期メールボックスを変更することは推奨されず、多くの奇妙な問題を引き起こす可能性があります。
- グループあたり同期できるメールボックスは 1 つのみです。
- グループ間通信は未開拓の領域であり、うまく機能しません(例:それぞれ異なるグループ用に設定されている support@yoursite.com から team@yoursite.com へメールを送信する場合など)。
アルファ機能であるため、他の微妙な落とし穴や粗い部分がある可能性もあります。
フィードバックとロードマップ
Gmail でこの機能を使用している方からのフィードバックを歓迎します。バグや問題の修正を担当するのは私です。現在はデバッグが少し難しいですが、改善に取り組んでいます!
次に着手する予定の事項は以下の通りです。
- デバッグ機能の強化:IMAP ログの表示や問題の特定を容易にする。
- グループ電子メールインターフェースの改善:Gmail から選択可能なメールボックスを制限し、メールボックスの変更を抑制/禁止する。
- 複数のグループで同じ IMAP 詳細を使用することを防ぐための検証。
- グループ IMAP 設定の保存方法の改善と、認証情報の検証の UX 向上。
- Outlook サポート。
現在、問題点を解消している間、この機能はホストされた顧客には利用できません。
特別感謝 
@dan と @j.jaffeux は、この大規模な機能の主要なコントリビューターであり、長期間にわたって取り組んできました。彼らの素晴らしい仕事のおかげで、この機能をこの段階まで持ち込み、この発表を行うことができました
。

