iRedMail で受信メール機能の有効化されたカテゴリにエイリアスを使用する

:mega: 警告 — このトピックは非常に特定のレアなユースケースに限定されたものであり、あなたがやるべきことではない可能性が高いです。推奨される設定については、以下の最初の 2 つのリンクを参照してください。

前提条件

Discourse を使用したチケットシステムのセットアップ方法について明確な記事がないかフォーラムを検索したところ、素晴らしいトピックがいくつか見つかりました:

  1. Configuring incoming email to create new topics or group messages
  2. Use Discourse as a Private Support/Ticket System

質問

残念ながら、私は一部のメールサーバー機能にあまり慣れておらず、reply+mailbox@server.comsomerandomcode+mailbox@server.com のサポートをどう設定すればよいかわかりません。そもそもこれがどうやって機能するのでしょうか? :man_facepalming:

異なるカテゴリに割り当てられた複数のメールをどのように使用すればよいのでしょうか?フォーラムの設定が 1 つのメールアドレスしかサポートしていない場合、どのように機能するのでしょうか?

はい、それは完璧に機能します。前述の 2 つのハウツー記事に基づいて、受信メールの仕組みと適切なフォーラム設定の原則を理解しました。前述の通り、主な点はメールサーバーの転送機能です。

基本的な完全機能メールサーバー

ゼロコストでメールサーバーをセットアップしたい方のために、iRedMail をお勧めします。

  • こちら は、Ubuntu + Postfix + iRedMail をベースにしたメールサーバーのセットアップ記事(英語)です。
  • こちら は、CentOS 向けの同じ内容(ロシア語)です。

メールエイリアス

デフォルトのインストール後、Discourse に接続可能なメールサーバーが準備されます。上記のステップ 1 と 2、および iRedMail でメールエイリアスを使用する方法の次のステップに従ってください。

例えば、master@server.com というメールボックスと 2 つのカテゴリを作成したとします:

feature
feature -> internal [private]

POP ポーリング設定では、メールボックスの認証情報を使用する必要があります。

サーバーのシェルに接続し、postgres ユーザーを使用してデータベースに接続します(私は postgres を使用しています):

ssh login@server.com
sudo su - postgres
psql

次に vmail スキーマに切り替え、2 つのエイリアスを作成します:

postgres=# \c vmail
postgres=# INSERT INTO alias (address, domain, active)
VALUES ('feat@server.com', 'server.com', 1);

postgres=# INSERT INTO alias (address, domain, active)
VALUES ('staff@server.com', 'server.com', 1);

次のステップで転送先を作成します:

postgres=# INSERT INTO forwardings (address, forwarding,
                              domain, dest_domain,
                              is_list, active)
VALUES ('feat@server.com', 'master@server.com',
'server.com', 'server.com', 1, 1);

postgres=# INSERT INTO forwardings (address, forwarding,
                              domain, dest_domain,
                              is_list, active)
VALUES ('staff@server.com', 'master@server.com',
'server.com', 'server.com', 1, 1);

postgres=# \q または CTRL+D で終了

好きな DB 管理ツールで aliasesforwardings の 2 つのテーブルを確認できます:

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

active キーに注意してください。これは 1 でなければなりません。

設定の確認

メールエイリアスをカテゴリに割り当て、登録済みのユーザーのメールからメールを送信します。必要に応じて、以下の設定で匿名メールの送信とステージングユーザーの自動作成を許可できます:

  • 匿名ユーザーからのメールを受け入れる(オプション、カテゴリ設定)
  • ステージングユーザーを有効にする(true の場合、approve unless staged もチェックしてください)
  • POP3 ポーリング有効 = true
  • POP3 ポーリングホスト(あなたのホストの FQDN)
  • POP3 ポーリングポート(通常 995)
  • POP3 ポーリングユーザー名(master@server.com
  • POP3 ポーリングパスワード
  • サーバーから削除(オプション、元のメッセージをメールクライアントに残すために無効のままにしています)
  • メール処理の失敗をログ記録(オプション、すべてのイベントを「Emails」タブで監視できるため)
  • 受信メール有効 = true
  • 受信メールの最小信頼レベル(フォーラム起動直後は 0 を使用し、clean up inactive users after days もチェックしてください)
  • メールプレフィックス(オプション、サイトタイトルが大文字の場合、自動返信にスパムスコアが追加される可能性があります)
  • 転送されたメールを有効にする(オプション、2.4.0beta2 ではまだ BETA で、場合によってはメール本文が見つからないことがあります)

受信メールの確認

エイリアスにメールを送信し、以下を確認してください:

/admin/email/received
/admin/email/rejected

これで、master@server.comfeat@server.comstaff@server.com のいずれに送られたメールも、1 つのメールボックス master@server.com に格納されます。違いは、feat@ に送られたメールは feature カテゴリで処理され、staff@ に送られたメールは internal カテゴリで処理される点です。

新しいトピックが出現したことを確認してください! :sunny:

補足メモ

  • 主要なメール master@ をパブリックまたはプライベートカテゴリに割り当てても、すべてのメールは正しく処理されます(重複なし、プライバシー漏れなし)
  • min topic title length(トピックタイトルの最小長)の設定は、メール件名の長さには影響しません。

私がおすすめするのは Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver です。設定は数項目を行うだけで済み、その後はグループやカテゴリに好きなメールアドレスを割り当てるだけで、そのまま動作します。

「いいね!」 2

@pfaffman さん、共有ありがとうございます。そのトピックは見つかりませんでした。私は古風なタイプなので、本番環境で実績のあるスキームを信頼しています。今回は、比較的迅速で安定したソリューションを提案したいだけです。また、関連する検索結果に「alias」という言葉についての言及は見つかりませんでした。したがって、このハウツーではこのようにしましょう。

「いいね!」 1

人それぞれですが、Discourse への受信メール処理については、Postfix を実行するコンテナは非常に実績のあるソリューションです。iRedMail がそれよりも高速で安定しているとは考えにくいです。なぜなら、iRedMail には、Discourse へのメール配信だけが目的であれば不要な多数のコンポーネントが含まれているからです。

このトピックは問題ありませんが、やや特殊なユースケースに特化した内容です。そのため、トピックの冒頭にその旨を警告として追加します。

「いいね!」 4