自宅サーバー(CentOS6.2)なので必然的にISP網内での設置なりOPB25の制限を受けます。
そこでISPのSMTPサーバーをリレーして送信する必要があるのと、妙なこだわりでメールクライアントの送信サーバは全てサブミッションポート(587)に統一したい。以上の要件で設定します。
※ページの最後に下記を一括実行するスクリプトを用意しています。
Postfix : メールの送信を請け負ってくれます。
Dovecot : IMAP,POP3など受信箱を請け負ってくれます。
前のページから来ていない方はPostfixとDovecotがインストールしてあるか確認してください。
test `rpm -qa postfix` || yum -y install postfix [Enter] test `rpm -qa dovecot` || yum -y install dovecot [Enter]
リレー先のSMTPで必要なSMTP認証システムをインストールしておきます。
yum -y install cyrus-sasl-plain [Enter]
yum -y install cyrus-sasl-md5 [Enter]
Postfix の設定
- サブミッションポートを使えるようにします
sed -i 's/^#submission/submission/' /etc/postfix/master.cf [Enter]
- 設定ファイル(/etc/postfix/main.cf) の編集箇所のみを列挙します。
[自サーバのホスト名] (ex mail.hoge.com)
myhostname = {ホスト名}
[自サーバのドメイン名] (ex hoge.com)
mydomain = {ドメイン名}
[すべてのサイトから受信できるようにします]
inet_interface = all
[自サーバで受け取るドメインを指定します]
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
[信頼できるネットワーク] (smtp-auth以外は信用しないのでlocalhostのみでOK)
mynetwork = 127.0.0.1/8
[メールボックスの在り処] /Maildir にするとmailbox_size_limitが無効になります
home_mailbox = Maildir/
[ヘッダーのチェック] ※必要に応じて
header_checks = regexp:/etc/postfix/header_checks
[メッセージのチェック] ※必要に応じて
body_checks = regexp:/etc/postfix/body_checks
[メーラーの隠ぺい]
smtpd_banner = $myhostname ESMTP
メール1通の制限サイズ (ex 10MB = 1024*1024*10 = 10485760)
message_size_limit = 10485760
メールボックスの制限解除
mailbox_size_limit = 0
smtp-authの設定を追記する
smtp-authの使用宣言
smtpd_sasl_auth_enable = yes
smtp-authのタイプ
smtpd_sasl_type = dovecot
意味を調べないと・・・なんとなくはわかりますよね。
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
ISPのSMTPをリレーする
リレーするホストを設定(編集)
relayhost = [{ISPのSMTPサーバ名}]:587
リレーでSMTP-Authを使用する宣言
smtp_sasl_auth_enable = yes
リレーSMTP-Authのユーザ名とパスワードの在り処
smtp_sasl_password_maps = hash:/etc/postfix/isp_auth_info
リレーSMTP-Authの認証ルール ※認証システムのインストールを忘れずに
smtp_sasl_mechanism_filter = login, plain, cram-md5
これも調べないと・・・
smtp_sasl_security_options = noanonymous - リレーSMTP-Authのユーザ名・パスワードを設定します。
echo ‘[{ISPのSMTPサーバー名}]:587 {ユーザ名}:{パスワード}’ > /etc/postfix/isp_auth_info [Enter]
ex… echo ‘[smtp.ocn.ne.jp]:587 hoge-user:hoge-passwd’ > /etc/postfix/isp_auth_info
postmap /etc/postfix/isp_auth_info [Enter]
Dovecotの設定
- /etc/dovecot/conf.d/10-auth.confを編集
disable_plaintext_auth = no auth_mechanisms = plain login
- /etc/dovecot/conf.d/10-mail.confを編集
mail_location = maildir:~/Maildir
- /etc/dovecot/conf.d/10-master.confを編集
Postfix smtp-auth と記述したコメント行の直下を下記のように変更します。 コメントを外すのもお忘れなく... unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
最後に起動します。
chkconfig postfix on chkconfig dovecot on /etc/rc.d/init.d/postfix start /etc/rc.d/init.d/dovecot start
一括実行をするスクリプトです ここからダウンロードして確認できます。
スクリプトをダウンロードして実行します ※CentOS6.2 / postfix-2.6.6 / Dovecot-2.0.9
# cd /var/tmp [Enter]
# wget http://stargate.undo.jp/download/centos/1_postfix.sh [Enter]
# bash 1_postfix.sh [Enter]
Your SMTP Server in ISP-Network
and Relay ISP SMTP Server ? (yes/no) [yes]: yes [Enter] ← ISPのSMTPをリレーします
ISP SMTP Server : smtp.hoge.com [Enter] ← ISPの送信用メールサーバ名を指定します
ISP Mail UserName : hoge-user [Enter] ISPのメール用ユーザ名
ISP Mail Password : hoge-passwd [Enter] ISPのメール用パスワード
Run OK ? (yes/no) [no]: yes [Enter] これで実行します