CentOS7で実施。Postfix、Dovecotを使ってローカルネットワーク向けの
メール送受信環境を構築。メール配信の仕組み理解のため。
Postfix
インストール
sudo yum -y install postfix
起動
systemctl restart postfix
postfixのバージョン確認
postconf | grep mail_version
自動起動
systemctl enable postfix
main.cf
cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org
vi /etc/postfix/main.cf
# 自身のドメイン設定
mydomain = mail-server.test
myorigin = $mydomain
# ローカルホスト以外からも受け付ける
inet_interfaces = all
# ipv4しか使用しないため
inet_protocols = ipv4
# 宛先ドメインに自身のドメインを追加
mydestination = $myhostname, localhost.$mydomain, localhost, mail-server.test
# 初めはローカルホストで動かすため
mynetworks = localhost
# メールボックスの形式設定
home_mailbox = Maildir/
再起動
systemctl restart postfix
user1というアカウントを作成する。
useradd user1 -s /sbin/nologin
任意のパスワード入力
passwd user1
server1というアカウントを作成する。
useradd server1 -s /sbin/nologin
任意のパスワード入力
passwd server1
ディレクトリの書き込み権限
chmod 777 /var/spool/mail
telnetインストール
yum -y install telnet
テスト
ローカルホストの25番ポートに接続
telnet localhost 25
出力
220 localhost.localdomain ESMTP Postfix
入力
helo localhost
出力
250 localhost.localdomain
入力:送信元アドレス
mail from: user1@mail-server.test
出力
250 2.1.0 Ok
入力:宛先アドレス
rcpt to: user1@mail-server.test
出力
250 2.1.5 Ok
入力:メールの本文かきますコマンド
data
出力
354 End data with <CR><LF>.<CR><LF>
入力:メール本文
helo postfix
入力:本文書き終えましたコマンド
.
出力
250 2.0.0 Ok: queued as ・・・
入力:telnet終了
quit
出力
221 2.0.0 Bye
以下ディレクトリ存在すること
ll /home/user1/Maildir
Dovecot
インストール
yum -y install dovecot
起動
systemctl start dovecot
自動起動
systemctl enable dovecot
設定
vi /etc/dovecot/dovecot.conf
# 使用するプロトコル列挙
protocols = imap pop3 lmtp
# IPv4のみ使用。v6へのバインドを行わない
listen = *
vi /etc/dovecot/conf.d/10-mail.conf
# ファイルの場所を指定
mail_location = maildir:~/Maildir
vi /etc/dovecot/conf.d/10-auth.conf
# 平文認証の許可
disable_plaintext_auth = no
auth_mechanisms = plain login
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = no
再起動
systemctl restart dovecot
テスト
telnet localhost 143
出力
Connected to localhost.
入力:user1でログイン
1 login user1 パスワード
出力
Logged in
入力:ホームディレクトリの一覧を見る
2 list "" *
出力
* List () "." "INBOX"
2 OK List completed.
入力:INBOXの中身を見る
3 select INBOX
出力
1 EXISTS ←1通のメールがある
1 RECENT ←最新のメールは1通
3 OK Select completed.
入力:1通目のメールを見る。送信時のテストのものが見れる。
4 fetch 1 body[]
出力
From: user1@mail-server.test
To: undisclosed-recipients:;
helo postfix
)
4 OK Fetch completed.
入力:終了
5 logout
出力
5 OK logout completed.
ネットワーク設定
vi /etc/postfix/main.cf
# 割り当てているネットワークを追記
mynetworks = localhost, 192.168.2.0/24
再起動
systemctl restart postfix
設定
vi /etc/dovecot/dovecot.conf
# ネットワークを記述
login_trusted_networks = xxx.xxx.xxx.xxx/xx (プライベートネットワークのCider)
再起動
systemctl restart dovecot