sendmail
sendmailでメールサーバーを構築してみる
SSL証明書を作成
SMTPSを提供する場合のみ必要
/etc/pki/tls/certsに移動して、そこでsudo make sendmail.pemを実行する。あとは情報を入力すると証明書が生成される
/etc/mail/authinfoを設定
OP25Bの制限を受ける場合にはこれを設定しないと外部にメールがおくれない
AuthInfo:リレーメールサーバー名 "U:ユーザーID" "P:パスワード" "M:認証メカニズム"
ユーザーID、パスワードはプロバイダによって必要な場合のみ
/etc/mail/sendmail.mcを修正
必要な部分のみ
# サーバーで提供する認証メカニズムを設定
TRUST_AUTH_METH(`EXTERNAL LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS',`EXTERNAL LOGIN PLAIN')dnl
# SSL関連の情報を設定
define(`confCACERT_PATH',`/etc/pki/tls/certs')dnl
define(`confCACERT','/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_CERT','/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY','/etc/pki/tls/certs/sendmail.pem')dnl
# OP25B設定ファイルを読み込む
FEATURE(authinfo,DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`authinfo')dnl
# SMTPとSMTPSを利用する設定
DAEMON_OPTIONS(`Port=smtp,Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtps,Name=TLSMTA,M=s')dnl
# ドメインに関する情報を設定
LOCAL_DOMAIN(`example.com')dnl
MASQUERADE_AS(`example.com')dnl
# サーバーのバージョン等を隠蔽する
define(`confSMTP_LOGIN_MSG',`unknown')dnl
これを設定したら/etc/mail内でsudo make
を行う。サーバーを起動しエラーが出ない事を確認後メール送信テストを行う
備考
sendmailはMaildir形式に対応していない為、procmailを利用して疑似的にMaildir形式の所に集約させる事ができる
SHELL=/bin/bash
PATH=/usr/bin:/bin
DROPPRIVS=yes
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR
これを/etc/procmailrcとしておいとけば良い