メールサーバー入門、とりあえず openSUSE Leap 15.2 初期設定の postfix から telnet してみる

何かと引きこもりになりがちな今日この頃です。テーマを決めないと次の目標が見つからないので、電子メールのシステムを勉強してみる事にしました。

電子メールシステムは難しい? openSUSE Leap 15.2 でメールサーバ

- まずは Telnet でメールを送る -

これまで、馬鹿の一つ覚えの様に GroupWise 一辺倒だったのですが、これではイカンと一念発起です。

- openSUSE Leap 15.2 では Postfix はデフォルト -

openSUSE Leap 15.2 では、デフォルトで Postfix MTA がインストールされています。OSインストールの際にDNSと Hostname を設定したので、SUSE Linux では、自動的に、 /etc/postfix/main.cf の hostname 変数には FQDN がセットされています。

SUSE のデフォルトです。

mail:~ # cat /etc/postfix/main.cf | grep islandcenter
myhostname = mail.i.islandcenter.jp
mail:~ #

まずはここから何を行えるかを見てみましょう。

- telnet のインストール -

Postfix はじめ MTA を学ぶためには、一番基礎となるのが telnet を使った、メールの送信です。telnet で基本的な操作をして、メール(MTA) のプロトコル学んでください、という事ですね。

telnet は deprecated (非推奨) なプログラムなので、手動でインストールします。

yast > Software management > "telnet" を検索してスペースキーでチェックしてインストールできます。

メールサーバー入門、とりあえず openSUSE Leap 15.2 初期設定の postfix から telnet してみる_a0056607_12110468.png

- telnet でメールを送る -

次に、root に telnet でテストメールを送ってみます。太字は実際タイプした文字です。


knakaj@mail:~> telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.i.islandcenter.jp ESMTP
ehlo mail.i.islandcenter.jp
250-mail.i.islandcenter.jp
250-PIPELINING
250-SIZE
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
mail from: <knakaj@mail.i.islandcenter.jp>
250 2.1.0 Ok
rcpt to: <root@mail.i.islandcenter.jp>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: Hello Root!

Hello Im your user...

.
250 2.0.0 Ok: queued as 064D8808541
quit
221 2.0.0 Bye
Connection closed by foreign host.
knakaj@mail:~> 

- mail コマンドでメールを読む -

デフォルト(無指定状態)では postfix は mbox 形式です。



mail:~ #
You have mail in /var/spool/mail/root
mail:~ #
mail:~ # ls /var/spool/mail/ -al
total 4
drwxrwxrwt  2 root root  18 Aug  7 17:06 .
drwxr-xr-x 11 root root 132 Aug  7 10:59 ..
-rw-------  1 root root 588 Aug  7 17:06 root
mail:~ # mail
Heirloom mailx version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 knakaj@mail.i.isl Fri Aug  7 17:06   15/588   Hello Root!
? 1
Message  1:
From knakaj@mail.i.islandcenter.jp  Fri Aug  7 17:06:08 2020
X-Original-To: root@mail.i.islandcenter.jp
Delivered-To: root@mail.i.islandcenter.jp
Subject: Hello Root!
Date: Fri,  7 Aug 2020 17:03:40 +0900 (JST)
From: knakaj@mail.i.islandcenter.jp

Hello Im your user...


? quit
Saved 1 message in mbox
mail:~ # ls mbox -al
-rw------- 1 root root 599 Aug  7 17:07 mbox
mail:~ #


メールを読み終わると、/etc/spool/mail にあったメールは ~: mbox ファイルに本文がマージされ移動します。

- メールの保存形式を Maildir に変える -

- Maildir に変更 -

- mbox と Maildir との違い

mbox は、旧来のメール保管方式で、私が初めて触った HP-UX もこの方式でした。受信したメールは SUSE Linux では /var/spool/mail/User_name ファイルにスプールされ、mail コマンドで読むと /home/User_Home/mbox ファイルに切り貼りされます。

後方互換性は良いのですが、単一のテキストファイルをロックして、該当のメールを切り貼りするため、スプールや受信メールが破損しやすいという欠点があります。

一方、Maildir 方式は /home/User_Home/Maildir の下に tmp, new, cur, というディレクトリが作られ、メール本文はメール毎に別ファイルとして tmp -> new -> cur のそれぞれのディレクトリにスプール -> 未読 -> 既読、とステータスを変更しながらハードリンクを切り替える方式です。一見複雑ですが、動作が単純なので、現在はこの方法が主流の様です。

mail コマンドは、デフォルトで mbox を使いますが、openSUSE Leap 15.2 はじめ最新の Linux の mail コマンドでは

localhost :~ > mail -f ./Maildir

を実行することで従来の mail コマンドと同じ処理をしてくれるわけです。

/etc/postfix/main.cf の次の一行をコメントアウトして postfix を再起動します。

mail:~ # cat /etc/postfix/main.cf | grep home_mailbox
# The home_mailbox parameter specifies the optional pathname of a
#home_mailbox = Mailbox
home_mailbox = Maildir/
mail:~ #

mail:~ # postfix check
mail:~ #
mail:~ # systemctl stop  postfix.service
mail:~ # systemctl start postfix.service
mail:~ #

Telnet でメールを送ってみた。

mail:~ # ls -l ./Maildir/
total 0
drwx------ 1 root root  0 Aug  8 14:48 cur
drwx------ 1 root root 62 Aug  8 14:48 new
drwx------ 1 root root  0 Aug  8 14:48 tmp
mail:~ #
mail:~ # mail -f ./Maildir/
Heirloom mailx version 12.5 7/5/10.  Type ? for help.
"./Maildir/": 1 message 1 new
>N  1 knakaj@mail.i.isl Sat Aug  8 14:45   15/546
? 1
Message  1:
From knakaj@mail.i.islandcenter.jp Sat Aug  8 14:45:48 2020
X-Original-To: root@mail.i.islandcenter.jp
Delivered-To: root@mail.i.islandcenter.jp
subjecct: to root home_dir ...!
Date: Sat,  8 Aug 2020 14:45:48 +0900 (JST)
From: knakaj@mail.i.islandcenter.jp

open your mail dir !

Thnks....

? q
"./Maildir/" updated.
mail:~ #

一応、デフォルトの mbox から ~/Maildir/ 形式に変わったようです。





isLandcenter.jp










by islandcenter | 2020-08-14 12:11 | Linux | Comments(0)