メールサーバはPostfixとDovecotを使います。メールアドレスは複数ドメインで、アカウントはLinuxユーザのを使用、送信はSMTP認証です。
さくらのVPSは2週間のお試し期間中はメールが使えません。2週間経ってなくてもいける! と思ったら本契約ボタンを押して下さい。1時間位で使えるようになるそうです。
Postfix(送信)
Postfixはインストール済みで既に稼働もしていたので、設定だけします。
# vi /etc/postfix/main.cf 以下のように修正 myhostname = www????.sakura.ne.jp mydomain = www????.sakura.ne.jp myorigin = $mydomain inet_interfaces = all #inet_interfaces = localhost inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP unknown 以下を追加(スパム対策) disable_vrfy_command = yes smtpd_helo_required = yes 以下を追加(バーチャルドメイン用) virtual_alias_maps = hash:/etc/postfix/virtual 以下を追加(SMTP-Auth用) smtpd_sasl_auth_enable = yes smtpd_sasl_type = cyrus smtpd_sasl_path = smtpd smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination 以下を追加(メールへの添付可能サイズを無制限にする) message_size_limit = 0 mailbox_size_limit = 0
メール送信時にサブミッションポート(587)を使用します。
# vi /etc/postfix/master.cf 以下の行のコメントアウトを外す submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
設定をリロードします。
# service postfix reload
ネット上ではリロードだけで済むって書いてあったけど、maillog見たら再起動しろって警告が出てたので結局再起動。メール送れなくて悩んだよ……
# service postfix restart
Saslauthd(SASL認証)
SMTP認証のためにSaslauthdを使用します。アプリと認証処理を分離してくれるものらしい。
# vi /etc/sysconfig/saslauthd Linuxユーザのパスワード(/etc/shadow)を使う MECH=shadow
起動します。
# service saslauthd start # chkconfig saslauthd on
Dovecot(受信)
Dovecotをインストールします。
# yum install dovecot
設定していきます。
# vi /etc/dovecot/conf.d/10-mail.conf 以下の行のコメントアウトを外す mail_location = maildir:~/Maildir
# vi /etc/dovecot/dovecot.conf 以下の行のコメントアウトを外す protocols = imap pop3 lmtp listen = *, ::
# vi /etc/dovecot/conf.d/10-auth.conf パスワードを平文にする disable_plaintext_auth = no
# vi /etc/dovecot/conf.d/10-ssl.conf SSL接続しない ssl = no
Dovecotを起動します。
# service dovecot start # chkconfig dovecot on
メールアドレス作成
useradd時にメールボックス用のディレクトリを自動で作成されるようにします。
# mkdir -p /etc/skel/Maildir/{new,cur,tmp} # chmod -R 700 /etc/skel/Maildir/
メールアカウント用のユーザをシェルログイン不可で作成します。
useradd -s /sbin/nologin hoge-info passwd hoge-info
useraddしたらメールボックスはこのように作成されました。
/home/hoge-info/Maildir/new/ /home/hoge-info/Maildir/cur/ /home/hoge-info/Maildir/tmp/
メールアドレスとその振り分け処理を作成します。ドメインごとにanythingの行を入れないとメールが使用できません。入れ忘れて無駄に回り道した……
# vi /etc/postfix/virtual hoge.com anything info@hoge.com hoge-info web@hoge.com hoge-web
振り分けを反映させます。
# postmap /etc/postfix/virtual
これでメールの送受信が出来るようになりました。
ぐぐるとアカウントをMySQLで管理する方法があったりとか、色んな設定があるようで、目的の情報がなかなか見つからず苦労しました。
暗号化とかしてないので、セキュリティ的にはちょっと弱いかもしれませんが、とりあえずこれで。