haraka is a modern, high performance, flexible SMTP server.

harakaで自分だけのオリジナルSMTPサーバを立てちゃおう!

今回は、インストール方法〜デーモンとして起動させるまで。

インストール手順

nodejsをインストール

1
2
yum install epel-release
yum install nodejs npm

harakaをインストール

1
npm install -g Haraka

harakaの設定ファイルを作成

1
haraka -i haraka_test

haraka -c haraka_test で起動してみるが、以下エラー。

1
[ERROR] [-] [core] Failed to setup listeners: listen EADDRINUSE

haraka_test/config/smtp.ini 設定を修正する。

1
2
3
4
5
6
7
#listen=[::0]:25
listen=[127.0.0.1]:25

; Daemonize
daemonize=true
daemon_log_file=/var/log/haraka.log
daemon_pid_file=/var/run/haraka.pid

haraka_test/config/me を自ドメインを入れる。

起動してみる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ haraka -c haraka_test
[NOTICE] [-] [core] Daemonizing...

$ tail /var/log/haraka.log
[INFO] [-] [core] Loading plugin: max_unrecognized_commands
[DEBUG] [-] [core] no timeout in max_unrecognized_commands.timeout
[DEBUG] [-] [core] no timeout in plugin_timeout
[DEBUG] [-] [core] plugin max_unrecognized_commands timeout is: 30s
[DEBUG] [-] [core] registered hook connect to max_unrecognized_commands.hook_connect
[DEBUG] [-] [core] registered hook unrecognized_command to max_unrecognized_commands.hook_unrecognized_command
[NOTICE] [-] [core] Listening on 127.0.0.1:25
[DEBUG] [-] [server] running init_master hooks
[INFO] [-] [core] [outbound] Loading outbound queue from /root/haraka_test/queue
[DEBUG] [-] [dnsbl] looking up: 2.0.0.127.zen.spamhaus.org.

プロセスの起動確認。

1
2
[root@localhost vagrant]# ps auxfw | grep [h]araka
root 16517 0.1 7.2 811724 33948 ? Ssl 09:50 0:00 /usr/bin/node /usr/lib/node_modules/Haraka/haraka.js -c haraka_test

ポートがLISTENしていることを確認。

1
2
[root@localhost vagrant]# ss -antu | grep :25
tcp LISTEN 0 128 127.0.0.1:25 *:*