LAN内だけのメールサーバ

参考:No.111 LAN内でメールをやりとりするには? - Linux で自宅サーバ [ Home Server Technical. ]
Webminのサーバ > Postfix > 一般オプションを選択。
「最も便利な一般オプション」では、
「メールを受信するドメイン(mydestination)」でローカルマシンを選択。
「その他の一般オプション」では、
「このメールシステムのインターネットホスト名(myhostname)」に「ubuntu.local」
「ローカルインターネットドメイン名(mydomain)」に「local」を設定。
あと、「ローカル ネットワーク(mynetworks)」を「192.168.***.0/24, 127.0.0.0/8」にした。
これでいちおうSMTPは動いている。
試しに外から25番ポートをたたいてみる。

$ telnet 192.168.***.* 25  
Trying 192.168.***.*...
Connected to 192.168.***.*.
Escape character is '^]'.
220 ubuntu.local ESMTP Postfix (Ubuntu)
helo local
250 ubuntu.local
mail from: ubuntu@foo.bar
250 2.1.0 Ok
rcpt to:ubuntu@ubuntu.local
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: test mail

test mail by telnet
.
250 2.0.0 Ok: queued as C0D043FFF1
quit
221 2.0.0 Bye
Connection closed by foreign host.

さてメールが届いているか確認。

~$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/ubuntu": 3 messages 3 new
>N  1 ubuntu@foo.bar     Thu Jan 10 18:40   15/518   test mail
& 3
Message 3:
From ubuntu@foo.bar  Thu Jan 10 18:40:39 2008
X-Original-To: ubuntu@ubuntu.local
Subject: test mail
Date: Thu, 10 Jan 2008 18:39:21 +0900 (JST)
From: ubuntu@foo.bar
To: undisclosed-recipients:;

test mail by telnet

& q
Saved 1 message in /home/ubuntu/mbox

ということで届いている。

また、外のメールクライアントからも送信可能となった。Macで使っているEudoraにてsmtpサーバを192.168.***.*としてubuntu@ubuntu.local宛に送ってみる。返信先は送信先と同じubuntu@ubuntu.localに設定した。
mailで読んでみる。

From ubuntu@ubuntu.local  Thu Jan 10 19:47:34 2008
X-Original-To: ubuntu@ubuntu.local
Mime-Version: 1.0
X-Sender: local@192.168.***.** (Unverified)
X-Mailer: QUALCOMM MacOS X Eudora Version 6J Jr3-rev3
Date: Thu, 10 Jan 2008 19:47:35 +0900
To: ubuntu@ubuntu.local
From:  <ubuntu@ubuntu.local>
Subject: test by eudora
Content-Type: text/plain; charset="us-ascii"

send test by eudora

次にmbox形式でなくMailbox形式に設定変更。
直接/etc/postfix/main.cfをいじればよいのだろうけど、意地でもWebminで使いたい、という人もいると思うので記録として残す。
Webminのサーバ > Postfix の設定 > ローカル配信を開く。

ちなみにhome_mailbox = MailboxとするとMailbox形式、home_mailbox = Maildir/とするとqmail形式になるらしい。

  • 「スプールディレクトリ」(mail_spool_directory)は消しておく(がそのままでもよいようだ)。

本来、mail_spool_directory = /var/mailと設定しておくことにより、伝統的なsendmailのmbox形式のメールボックスが設定され、そのスプール先が/var/mailに設定される。しかし、これらhome_mailboxとmail_spool_directoryは排他的であり、しかもhome_mailboxが優先適用されるので、上記のようにmail_spool_directoryの設定を残しておいても良いようだ。
http://design.dualism.info/archives/2005/11/post_000259.html

メールの保存場所が変更されたので、mailコマンドでメールを読みたい場合には、環境変数MAILも変更しておく必要がある。

~$ MAIL=${HOME}/Mailbox; export MAIL

これが分からず難儀してしまった^^;;;;;。

…しかし、mailコマンドでメールを読めるけど、読んだメールは~/mboxに移されてしまうなぁ…。これはマズいのでは。