自分専用のIMAPサーバがほしい!! | Pimp my Code. @wataru420

Pimp my Code. @wataru420

My name is Wataru Fukunaga.

プロバイダーが提供するメールアドレスのメールを、複数の端末で見たい時、プロバイダー側がIMAPに対応していないと、端末毎にメールを管理するのが面倒ですよね。

そこで中継専用のIMAPサーバを構築して、メールを読む端末はそこにアクセスするという方法を取ることにしました。

構築したのはCentOS5.4のマシーン。

必要なミドルウェアはpostfixとFetchmailとdovecotです。

postfixがメールを送信するためのソフト。

Fetchmailが他のサーバからメールを受信するためのソフト。

dovecotがIMAPサーバです。

postfixの設定


まずはyumからインストール

$yum install postfix

インストールできたら、設定ファイルを編集します。

$vim /etc/postfix/main.cf

編集は下記の例を参考にしてください。
.fetchmail #
# グローバルオプションの設定
set daemon 60 #60秒間隔でメールチェック
set no bouncemail # 転送失敗の通知は送信者ではなく下記のpostmasterへ送る
set postmaster myname # エラーメールを受けるアカウント名(defaultは自分)

# 全アカウントに共通の設定
defaults
keep # 元サーバーのメールを削除しない
# flush # 元サーバーのメールを削除する
smtphost localhost # メール転送に使うメール送信(SMTP)サーバーのアドレス
to myname # 転送先ユーザー名

# メールサーバー設定1
poll mail.hoge.co.jp
protocol pop3
port 995
username "myname"
password "mypass"
ssl

Fetchmailの設定


こちらもyumからインストール

$yum install fetchmail

Fetchmailは設定ファイルを作成します。

$touch ~/.fetchmailrc
$chmod 600

$vi ~/.fetchmailrc

設定内容はこんな感じにしました。
main.cf #
#自分のFQDN名の追加
myhostname = mail.centossrv.com

#自分のホスト名の追加
mydomain = centossrv.com

#送信元アドレスの@以下の設定追加
myorigin = $mydomain

#外部からのメール受信許可を変更
inet_interfaces = all

#時ドメイン宛メールを受信できるよう変更
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

#メールボックスの形式指定の追加
home_mailbox = Maildir/

#一応メールサーバソフト名の隠蔽設定を追加
smtpd_banner = $myhostname ESMTP unknown

Fetchmailの起動

$/usr/bin/fetchmail

これでがーーーっと未読のメールを受信してくるはず。

Dovecotの設定


まずインストール

$yum install dovecot

続いてDovecotの設定ファイル編集

メールボックスの保存の形式だけ指定してあげる。

$vi /etc/dovecot.conf

下記の箇所だけ修正
dovecot.conf #
mail_location = maildir:~/Maildir

そしてDovecotを起動しておきます。

$/etc/init.d/dovecot start

メーラーの設定


ここまできたら、あとはIMAPに対応したメーラーを設定するだけ。
メールの受信サーバの設定で、IMAPを選択
サーバ名は先程構築したサーバのアドレス
ポートは143
みたいなかんじで設定します。

ちなみに、今回は受信だけなので、送信用のSMTPサーバはプロバイダーのものを指定します。

これで設定終了。
試しにメールを送ってみましょう。
同期しているのが確認できるはずです。

最後に


ちなみに、今回の設定ではミドルウェアの自動起動の設定や、サーバのセキュリティーが不十分な可能性があります。
外部に公開している場合などはそのへんの考慮が必要ですね。