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(トピックタイトルの最小長)の設定は、メール件名の長さには影響しません。

The one I recommend is Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver. You don’t need to configure much more than a couple things to set it up and after that you can just use whatever email addresses for groups or categories and it will Just Work.

「いいね!」 2

Thanks for sharing @pfaffman, I did not find that topic. I am old-school guy, therefore I trust the proven schemes used in production. I just suggest rather fast and stable solution. Also I did not find any mention of word alias in relevant search results. So let it be in this howto).

「いいね!」 1

To each his own, but for handling incoming mail to Discourse a container running Postfix is a pretty proven solution. It’s hard to imagine that iRedMail could be faster or more stable, if only because iRedMail includes a bunch of components that you don’t need if all you want to do it get mail delivered to Discourse.

This topic is OK but highly specific to your rather unusual use case. I’m adding a warning to the top of the topic to that effect.

「いいね!」 4