qmailサーバー構築

PostfixがCentOSには入っています。僕は最初Postfixの方でメールサーバーを構築していました。しかし複数ドメインのやり方がわかりませんでした。そこで知人に聞いたらqmailを使用していると聞きました。qmailと名前は以前会社で聞いたことあったのと実際に使った事あるので驚きはしませんでしたが、簡単にインストールできたり設定が楽とききました。そこでqmailの導入を決定しました。

qmailって何?

qmailはsendmailの後に作られたものです。現在では開発は終わっているのですがセキュリティーの高さと設定のしやすから愛用している人がおおいパッケージの一つです。実際参考サイトは沢山あるのでインストールするときはその参考サイトを閲覧してそのまま試しました。
参考サイト:メールサーバー構築(qmail+Courier-IMAP)
バーチャルドメイン設定(vpopmail)

qmail導入のメリット

qmailを導入すると、ドメイン毎にメールユーザーを作成して運用するといったバーチャルドメインでの管理が比較的楽になります。また、WEBブラウザでユーザーの追加、削除ができるようになりとても便利です。

qmailのデメリット

qmailのデメリットとしては、まず参考サイトに貼ってあるリンクの殆どがリンク切れが多くファイルのダウンロードするのに探さないといけないというのがあります。実際に自分がインストールするときにファイル名を入力してダウンロードできるファイルを探すことから始めました。

今回僕が参考サイトで得ることができなかったのですが集めたファイルのURLを貼っておこうと思います。

qmail本体
ftp://ftp.eu.uu.net/pub/unix/mail/qmail/qmail-1.03.tar.gz
localtime
http://www.filewatcher.com/m/qmail-date-localtime.patch.gz.741.0.0.html
SMTP
http://tomclegg.net/qmail/qmail-smtpd-auth-0.31.tar.gz
不正中継対応拒否
http://www.qmail.org/qmail-smtpd-relay-reject

qmailadminの導入

qmailadminを導入してみました。ここからバーチャルドメインでのユーザーを追加したりメーリングリストを作成したりできます。

参考サイト

メール サーバー構築(qmail+Courier-IMAP)
バーチャルドメイン設定(vpopmail)

追記:メールクライアントから送信サーバーに接続できない

クライアントのメールソフトの設定をしていたら、受信メールに接続できるけど送信サーバーに接続できないという現象が起きました。これはプロバイダが導入している『Outbound Port25 Blocking』が原因で25番ポートが遮断されています。この問題はqmailのSMTPをサブミッションに変更することで問題解決できるみたいです。

サブミッションポートの設定

ポート:587の設定があるかを確認します。

less /etc/services
------
submission 587/tcp msa # mail message submission
submission 587/udp msa # mail message submission
------

qmailの設定ファイルを変更しサブミッションポートの有効化

vi /etc/init.d/qmaild

-----------
# SMTP
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtp &
-----------
↓
-----------
# SMTP
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 submission \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtp &
-----------

ファイルの中身は人によって違うと思います。
終わったらqmailを再起動します

引用元:qmailでのサブミッションポートの設定。

メールクライアントベッキーの設定

僕はベッキーを使っているのですが、ポートを587に変更するだけではなくCRAM-MD5のチェックを外してください。これで送れるようになります。

ローカルドメインは受信できない

ローカルドメイン同士も送受信できない場合は、以下の設定を見直してください

/var/qmail/control
cat locals

この中にもしドメイン名やdnsが入っているなら削除して、『localhost』にしましょう。ここにドメイン名をいれるとローカル同士でのメールも送受信できなくなります。
引用元:qmailメモ

ローカル同士のメールの送受信はできるけど外部からのメールが受信できない

今回一番時間がかかったのはこの部分だと思います。同じサーバー同士はメールのやりとりはできるのですが外部からのメール(Gmail・Yahoomail)といったとこからメールの受信ができなくなりました。これはサブミッションポートの設定をしてsmtpを外したからおきました。そこでSMTPとサブミッションポートを以下の用に設定したら解決しました

/etc/init.d/qmail
 # SMTP
 tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
 -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp rblsmtpd -r relays.ordb.org \
 qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
 splogger smtp &

 # SMTP→サブミッションへ変更
 tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
 -x /home/vpopmail/etc/tcp.smtp.cdb 0 submission rblsmtpd -r relays.ordb.org \
 qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
 splogger smtp &

両方を有効化することで僕の場合は解決しました。

まとめ

今回問題点はこれだけではなくて、MLを作成したけども上手くいかなかったなど色々ありました。この内容は更新したりしてちょっとわかりづらいというとこがあると思うので新しく記事を書いて問題点をまとめてそこまでの解決の道のりを載せていきたいと思います。

追記:qmailサーバー構築における問題点

今回インストールしたqmailの問題点を追記しました。

個人支援・寄付について

サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS