読者です 読者をやめる 読者になる 読者になる

postfixの勉強 #1

仕事上,ちょっと触る機会があったんだけど,
イマイチ仕組みがよく分からなかったので,勉強することにした.
ちなみにメールサーバは今まで一度も構築したことがない.

postfixというのは,メール転送用のサーバアプリケーションのこと.
言うまでもないことだけど,メールというのは
SMTPというプロトコル(ルール)に基づきながら
サーバ間で次々とバトンリレーすることで宛先まで転送される.
SMTPの規約としては以下.真面目に読んだことはないけど.

https://www.ietf.org/rfc/rfc5321.txt

とりあえず詳しい仕組みは後回しとして,インストールしてみる.
Dockerfileは以下の超最低限なものを用意.

from centos
RUN yum install -y postfix

ビルドしたイメージからコンテナを起動し,さっそく入ってみる.
/etc/配下にpostfixというディレクトリが新設されていた.
以下はその中身の確認と,プロセスのチェック.

# ll
total 148
-rw-r--r-- 1 root root 20876 Jun 10  2014 access
-rw-r--r-- 1 root root 11681 Jun 10  2014 canonical
-rw-r--r-- 1 root root  9904 Jun 10  2014 generic
-rw-r--r-- 1 root root 21545 Jun 10  2014 header_checks
-rw-r--r-- 1 root root 27176 Jun 10  2014 main.cf
-rw-r--r-- 1 root root  6105 Jun 10  2014 master.cf
-rw-r--r-- 1 root root  6816 Jun 10  2014 relocated
-rw-r--r-- 1 root root 12549 Jun 10  2014 transport
-rw-r--r-- 1 root root 12494 Jun 10  2014 virtual
# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
postfix    137  0.0  0.6  89092  6412 ?        S    06:50   0:00 pickup -l -t unix -u
postfix    138  0.0  0.6  89160  6416 ?        S    06:50   0:00 qmgr -l -t unix -u

とりあえず何かしらインストールされているようである.
論より証拠ということで,メールを送って,ログを覗いてみる.

# sendmail ■■■@gmail.com
From:oreore@oreore.com
To:■■■@gmail.com
Subject:Test Mail

This is test mail.

.
# journalctl | tail
Mar 18 07:51:44 ec4adde595ab postfix/pickup[252]: 0531460138FB: uid=0 from=<root>
Mar 18 07:51:44 ec4adde595ab postfix/cleanup[326]: 0531460138FB: message-id=<20170318075144.0531460138FB@ec4adde595ab.localdomain>
Mar 18 07:51:44 ec4adde595ab postfix/qmgr[253]: 0531460138FB: from=<root@ec4adde595ab.localdomain>, size=328, nrcpt=1 (queue active)
Mar 18 07:51:44 ec4adde595ab postfix/smtp[328]: connect to gmail-smtp-in.l.google.com[2404:6800:4008:c06::1a]:25: Network is unreachable
Mar 18 07:51:45 ec4adde595ab postfix/smtp[328]: 0531460138FB: to=<■■■@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.23.27]:25, delay=27, delays=26/0/0.44/0.53, dsn=2.0.0, status=sent (250 2.0.0 OK 1489823504 t10si10983459plh.196 - gsmtp)
Mar 18 07:51:45 ec4adde595ab postfix/qmgr[253]: 0531460138FB: removed

送信元のoreore@oreore.comは適当につけた存在しないメールアドレスで,
送信先の■■■@gmail.comは実在するメールアドレスとなる.

journaldのログを見る限り,内部的には
pickup→cleanup→qmgr→smtp→qmgr
というキャッチボールの末にメールが送られているようである.
Gmailの当該アカウントを確認したところ,確かにメールは送られていた.

それぞれのプロセスの意味は次回確認するとして,今回はここまで.