Node.jsで構築された、プラグインで柔軟に拡張できる高性能メールサーバー(メール転送エージェント)です。
・企業:既存のExchangeやPostfixと組み合わせて、高度なスパムフィルタリングやメールルーティングのカスタマイズを実現できます。 ・スタートアップ:自社サービスからの大量メール送信基盤を低コストで構築し、JavaScriptプラグインで柔軟にカスタマイズできます。 ・個人事業主・フリーランス:独自ドメインのメール配信環境をセルフホストで運用し、外部サービスへの依存とコストを削減できます。
SendGridなどのSaaS型メール配信サービスは従量課金が発生しますが、HarakaはOSSで無料利用でき、JavaScriptプラグインによるカスタマイズの自由度が高く、数千の同時接続を処理できる高いスケーラビリティを備えています。
Haraka - Node.js メールサーバー
Harakaは、モジュラープラグインアーキテクチャを備えた高度にスケーラブルなnode.jsメールサーバーです。Harakaは数千の同時接続を処理し、毎秒数千のメッセージを配信できます。Harakaとプラグインは非同期JSで書かれており、非常に高速です。
Harakaは優れたスパム対策機能を備えており(プラグインを参照)、フィルタリングMTAとして優秀に機能します。また、認証とDKIMプラグインを有効にしたポート587でのMSAとしても良好に動作します。
Harakaはメールストア(ExchangeやPostfix/Exim/Qmailのような)、LDA、またはIMAPサーバー(DovecotやCourierのような)になることを意図していません。Harakaは通常、そのようなシステムと組み合わせて使用されます。
Harakaにはスケーラブルな送信メール配信エンジンが組み込まれています。relayingとしてマークされたメール(authプラグインなど経由)は、自動的に送信配信のキューに入れられます。
ヘルプの取得
- メーリングリストに参加する(Harakaプラグインとして実装)
- GitHub Issues
スクリーンキャスト
Harakaを使う理由
Harakaのプラグインアーキテクチャは、メールストアの管理に優れているものの十分なフィルタリング機能を持たない従来のMTAを補完する、容易に拡張可能なMTAを提供します。
プラグインシステムにより、新機能のコーディングが容易になります。典型的な例として、Exchangeシステムにqmail風の拡張アドレスを提供することがあります。これにより、user-anyword@domain.com宛のメールを受信しつつ、正しくuser@domain.comにルーティングすることができます。Harakaではこれはわずか数行のコードで実現できます。
SpamAssassinによるメールスキャン、HELO名の検証、DNSブロックリストのチェック、その他多数のプラグインが提供されています。
Harakaのインストール
Harakaの実行にはnode.jsが必要です。npmでHarakaをインストールしてください:
# 2番目のコマンドで「nobody」エラーが出る場合は、次のコマンドのコメントを外して実行してください
# npm -g config set user root
npm install -g Haraka
インストール後、harakaバイナリを使用してサービスをセットアップします。
Harakaの実行
まず、サービスを作成します:
haraka -i /path/to/haraka_test
これにより、configとpluginディレクトリを含むharaka_testディレクトリが作成されます。また、Harakaが使用するホスト名がhostnameの出力に設定されます。
hostnameが正しくない場合は、config/host_listを編集してください。例えば、user@domain.com宛のメールを受信するには、config/host_listファイルにdomain.comを追加します。
最後に、root権限でHarakaを起動します:
haraka -c /path/to/haraka_test
これで動作します。
Harakaの設定
実行するプラグインを選択するには、config/pluginsを編集します。プラグインはHarakaの全体的な動作を制御します。デフォルトでは、config/host_listにリストされたドメイン宛のメッセージのみが受け入れられ、smtp-forwardプラグイン経由で配信されます。config/smtp_forward.iniで配信先を設定してください。
マニュアルを読む
haraka -h plugins/$name
ドキュメントには各プラグインの設定方法が詳しく記載されています。config/pluginsを編集した後、Harakaを再起動してお楽しみください!
gitからの実行
npmでHarakaをインストールできない場合は、以下の手順でgitから実行できます:
まずリポジトリをクローンします:
$ git clone https://github.com/haraka/Haraka.git
$ cd Haraka
Harakaのnode.js依存関係をローカルにインストールします:
$ npm install
config/pluginsとconfig/smtp.iniを編集して、使用するプラグインと設定を指定します。
最後にHarakaを実行します:
$ node haraka.js
ライセンスと作者
HarakaはMITライセンスです - 詳細はLICENSEファイルをご覧ください。
Harakaは、メールとスパム対策の世界で10年の経験を持つMatt Sergeantが開始したプロジェクトです。彼の以前のプロジェクトには、SpamAssassinのプロジェクトリーダーやQpsmtpdのハッカーとしての活動があります。