メールサーバを構築しますヾ(゚∀゚)ノ
今回はSMTPサーバにSendmailを、POPサーバにqpopperを使用します。

qpopperはMaildirに対応していないという致命的欠陥がありますが、そこはパッチで回避します。
セキュリティホール等の問題から最近はユーザ数の少ないSendmailですが、ちゃんと設定すれば他のメールサーバに負けない実力を発揮しますよ。

尚、一般家庭の方はOutboundPort25Blockingの関係でメールが送信出来ない可能性が高いです。
その場合は、SendmailをOutboundPort25Blockingに対応の設定もも同時行う必要があります。
基本的なセットアップだけでは踏み台になってしまうので、最初からSMTP認証を設定します。
POP before SMTPがイイという方は、その内記事を書くので暫くお待ち下さい。

Sendmailインストール
# yum -y install sendmail-cf
※sendmail.cf作成ソフトインストール

# vi /etc/mail/sendmail.mc
※sendmail.mcを編集しセットアップを行う
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
※変更
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
※外部からの接続を許可

dnl MASQUERADE_AS(`mydomain.com')dnl
※変更
MASQUERADE_AS(`hogehoge.com')dnl
※送信元アドレスを指定したドメイン変更

dnl FEATURE(masquerade_envelope)dnl
※変更
FEATURE(masquerade_envelope)dnl
※メールヘッダに含まれるReturn-Pathを、以下のMASQUERADE_DOMAINで指定したドメインに強制的に書き換える

EXPOSED_USER(`root')dnl
※変更
dnl EXPOSED_USER(`root')dnl
※送信元がrootの場合でも変更

dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
※変更
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
※SMTP認証の有効化

define(`confMAX_MESSAGE_SIZE',`10485760')
※メールの最大容量を10MB=10*1024*1024に制限

define(`confSMTP_LOGIN_MSG',`unknown')dnl
define(`confRECEIVED_HEADER',`$?sfrom $s $.$?_($?s$|from $.$_)
        $.$?{auth_type}(authenticated)
        $.by $j (unknown)$?r with $r$. id $i$?u
        for $u; $|;
        $.$b')dnl
※メールサーバ名とバージョン情報を隠す


# cd /etc/mail/
# make sendmail.cf
※sendmail.cfを作成

# echo `hostname -d` >> /etc/mail/local-host-names
※Sendmailを利用するドメインを指定

Sendmailの初期設定以外にもシステムを変更する箇所があるので、Sendmailはまだ起動しないで下さい。

SMTP認証(SMTP-Auth)設定
SMTP認証用のアカウント、パスワードをメールと同一にする場合
# /etc/rc.d/init.d/saslauthd start
※saslauthd起動

# chkconfig saslauthd on
※saslauthd自動起動設定


上に引き続き、SMTP認証用のアカウント、パスワードをメールと別にする場合
# vi /usr/lib/sasl2/Sendmail.conf
pwcheck_method:saslauthd
※変更
pwcheck_method:auxprop


Maildir形式に変更
Sendmailのメール格納形式は「/var/spool/mail/ユーザ名」という、1つのファイルにメールを蓄積していくタイプです。
1つのディレクトリを全ユーザが共有しているので「共有ディレクトリ形式」と呼ばれています。
ですが、この形式は保存メールが増えた分、ファイルの容量が増えていくのでレスポンスが悪くなり、結果送受信に影響が出ます。
またセキュリティ的にもよろしくないので、Maildir形式へ移行します。
# mkdir -p /etc/skel/Maildir/new
# mkdir -p /etc/skel/Maildir/cur
# mkdir -p /etc/skel/Maildir/tmp
※新規ユーザ追加時にMaildir形式メールボックスを自動作成

# chmod -R 700 /etc/skel/Maildir/
※自動作成したメールボックスのパーミッションを変更


SendmailをMaildir形式に対応
sendmailはMaildir形式メールボックスに対応していので、Procmailを使用して配送します。
vi /etc/procmailrc
※procmail設定ファイル作成
SHELL=/bin/bash
PATH=/usr/bin:/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
#LOGFILE=$HOME/procmail.log # ログ出力先
#VERBOSE=ON # 詳細ログ出力


Sendmail再起動
# /etc/rc.d/init.d/sendmail restart

これで、Sendmailの基本的なセットアップは完了です。

SMTP認証用アカウントの作成/削除
SMTP認証専用アカウントを有効にしている方は、専用アカウントの管理を行う必要があります。
# echo "password" | saslpasswd2 -p -u hogehoge.com -c hoge
※SMTP認証用アカウントを追加

# sasldblistusers2
※SMTP認証用アカウントの確認

# saslpasswd2 -d hoge -u hogehoge.com
※SMTP認証用アカウントの削除

※この場合、SMTP認証用アカウントは「hoge@hogehoge.com」となるので注意する事


続いて、POPサーバのqpopperの設定を行います。
qpopper、実はMaildir形式に対応していないので、そのままmakeしても使用できません。

qpopperインストール
# wget http://www.ring.gr.jp/pub/net/mail/qpopper/qpopper4.0.9.tar.gz
※下記のパッチに対応しているqpopperをダウンロード

# tar zxvf qpopper4.0.9.tar.gz
※ダウンロードしたqpopperを解凍

# cd qpopper4.0.9
※展開ディレクトリへ移動

# wget http://www.asteroid-b612.org/software/qpopper-mysql/qpopper-mysql-0.15-test.patch
※Maildir対応パッチをダウンロード

# patch -p1 < qpopper-mysql-0.15-test.patch
※パッチを適用

# mkdir -p /usr/local/man/man8/
※man関連でエラーが出る事への対処

# ./configure --enable-maildrop-type=maildir --enable-home-dir-mail=Maildir --disable-mysql
※Maildirに対応したqpopperをコンパイル

# make && make install
※qpopperインストール


qpopperを起動
qpopperはxinetdを経由して起動する為、xinetd.d以下に起動スクリプトを設置する。
# vi /etc/xinetd.d/pop3
service pop3
{
     disable      = no
     socket_type  = stream
     wait         = no
     user         = root
     server       = /usr/local/sbin/popper
     server_args  = -s -R
     #only_from    = 127.0.0.1 172.16.0.0/12 192.168.1.0/24
}

# /etc/rc.d/init.d/xinetd restart
※xinetdを再起動し、qpopperを起動する

これで、Sendmail+qpopperの基本的なメール設定は完了ですヾ(゚∀゚)ノ
実際にメールが見れるか確認してみてください。