メール受信のサーバーアプリケーション「Dovecot」を使ってメールサーバーを作ってみましょう。
メール受信を担うPOPサーバーとは?
メールの送受信に関わるメールサーバーは大きく分けて
- メールの送信や中継を行うメールサーバー:SMTP
- 受信メールをユーザーに送るメールサーバー:POP、IMAP
があります。
細かいSMTPやPOP、IMAPプロトコルの違いについてはこちらを確認してください→SMTPの解説、POP/IMAPの解説
POPによってメールを受信するまでの流れを図を用いて説明します。下図より、「送信者のSMTPサーバー」から「メールの宛先ドメイン宛てのSMTPサーバー」にメールが送信されます。SMTPサーバーはメールアカウント(user@example.comのuserがアカウント)のメールボックスに配送します。POPサーバーはアカウント別に存在するメールボックス内のメールを受信してユーザーPCに届ける役割を担っています。I
混乱しやすい点として、メールの受信がPOPというと受信するSMTPサーバー(オレンジ枠内の)がPOPサーバーであると思いやすいですが違います。SMTPサーバーは送信だけでなく中継もするので送受信を担います。
また、オレンジ枠内は同じサーバーマシン内を表していて、図では別々のマシンがあるように見えますが、ここでは同じサーバーマシン内にSMTPサーバーとPOPサーバーがあります。SMTPサーバーはマシンというよりもアプリケーションと考えたほうが想像しやすいかもしれません(SMTPサーバー:postfix、POPサーバー:dovecot){postfixはSMTPサーバーを提供するアプリケーション、dovecotはPOPサーバーを提供するアプリケーション}
Dovecotのインストール
代表的な受信用メールサーバーアプリケーションである「Dovecot」を用いて実際にメールサーバーの構築を行ってみましょう。
Dovecotは以下のコマンドでインストールできます。
# yum install dovecot
Ubuntu
# apt install dovecot-core dovecot-pop3d dovecot-imapd
ubuntuの場合はpop, imap利用するものを別個インストールする必要がある
dovecotのサービス管理はsystemctlで行います
systemctl start dovecot
systemctl stop dovecot
Dovecotの一般設定
dovecotの設定は2つの設定ファイル
- dovecot.conf
- 10-mail.conf
で行います。
dovecot.confの設定
dovecot.confは以下のディレクトリにあります。
/etc/dovecot/dovecot.conf
dovecot.confはメインの設定ファイルです。dovecotは設定をほとんど変更しなくても動きます。
設定項目は
- protocols = pop3, imap →プロトコルの選択
listenポートをデフォルトの値から変更したい場合は記述が必要です。
- imap 143
- imaps 993
- pop3 110
- pop3s 995
dovecot.confまたは10-master.conf(ubuntu)でport=の値から変更します。
service imap-login {
inet_listener imap {
#port = 143
}
inet_listener imaps {
#port = 993
#ssl = yes
}
service pop3-login {
inet_listener pop3 {
#port = 110
}
inet_listener pop3s {
#port = 995
#ssl = yes
}
}
service submission-login {
inet_listener submission {
#port = 587
}
}
10-mail.confの設定
メールボックスの設定等は10-mail.confで設定します。10-mail.confは以下のディレクトリにあります。
/etc/dovecot/conf.d/10-mail.conf
主要な設定項目は
- mail_location = “” →メールボックス形式かメールディレクトリ形式か選択する
- 例:メールボックス形式の設定 mail_location = “maildir:~/Maildir”
Dovecotのログファイル
/var/log/maillog
にあります。
メールの受信操作
実際にtelnetを使ってPOPサーバーのポート110番に接続してメールボックスのメールを取り出してみましょう。
- telnet localhost 110 :POP3のポート110番localhostにtelnetで接続
- USER ユーザー名:ユーザ名で認証
- PASS パスワード:ユーザーのパスワード入力
- LIST :ボックス中のメール一覧IDの取得
- RETR 1 :メールIDのメールを取得
- QUIT:終了