メールサーバーの導入

はじめに

Xmailは、SMTP/POP3/FINGERサーバーです。マルチドメイン(ダイナミックDNS対応)対応で、アカウント/ドメインエイリアス機能、XmailCFGによるWebブラウザでの設定やK4でのウェブメール等が出来ます。「Melon、 ArgoSoftMail、radish」では出来ない指定SMTPサーバーへ(プロバイダー指示のSMTP以外メールを受け付けないように組まれている場合)のリレーが可能です。つまり、他のSMTPサーバーは、LocalHost(127.0.0.1)のみ指示可能で、そこからプロバイダーのSMTPにダイナミックにリレーされます。多くのプロバイダーは、それでいいのですが、残念ながらタヌキの使用プロバイダーは、そうは行きません。また、他のSMTPサーバーは、設定が難しかったりして、使用にたえなっかた。

おすすめのところ

  • Xmailは、Windowsでの本格的メールサーバーとしての機能を備えている。
  • Xmailは、Sendmail.exeを標準で同梱されているので、CGIによるメール送信が可能!
  • Xmailは、我が家のパソコン上で、メールのアカウントをいくらでも増やすことが出来るので、インターネット上の無料メールアカウントまたは、プロバイダーにアカウントの増量要請しないで良くなる。
  • Xmailは、複数のドメインを作ることができる。無料ダイナミックDNSで得られるドメインをいくつも登録できる。
  • Xmailは、設定が難しいが、初心者でも出来るようにXmailCFGで簡単に設定できる。すばらしいソフトだ!
  • K4は、WEBメーラーとして、出先から我が家に居る感覚で、メールの送信受信が可能です。

注意

Xmailを使用するには、このソフトだけで良いですが、設定を簡単に行えるソフトXmailCFGは大変便利ですオススメです。しかしこのソフトは、CGI言語で書かれているため、どうしても、WEBサーバーと、ActivePERLが必要です。
そして、これらが自分のパソコン上で正常に動作していることが望まれます。
メールサーバーとして動かす関係上、できたらマシンは24時間稼動が必要かも、さもないとあて先が見当たらないとして、送信者にエラーメールが帰ります。

インストール

次の箇所よりソフトをダウンロードして、任意の場所に展開してください。
XMail の最新版は http://www.xmailserver.org にあります。
XMailCFG,K4の最新版は、http://www.xmailserver.jp/download/にあります。

次の、Xmail「NT/2k/XP Binaries」クリックしてダウンロードしてください。

次の、XmailCFG「EXE実行ファイル版」クリックしてダウンロードしてください。

次の、K4「EXE実行ファイル版」と「ActivePerl 5.8 対応拡張モジュール」クリックしてダウンロードしてください。

任意の場所にこれらのファイルを展開してください。(例)

  • Xmailは、c:\xmail に展開!
  • XmailCFGは、c:\www\cgi-bin\xmailcfg に展開!
  • K4は、c:\www\cgi-bin\k4に展開!
  • K4のActivePerl 5.8 対応モジュールを展開して、"c:\WWW\cgi-bin\K4\cgi"に上書きしてください。(ただし、PERLが5.8.x.x 未満では展開必要なしです)

設定

WEBサーバーの管理下のディレクトリーとして、「c:\www\cgi-bin」があり、かつ、cgiで呼び出す許可であって、http://localhost/cgi-bin/...で呼び出すことが出来る環境、または、それに準じる環境であること。

CGIスクリプトの修正

あなたが使う WWW サーバによっては、XMailCFG に含まれる CGI スクリプトファイルの最初の 1行(#! から始まる行、shebang 行。perl.exe へのフルパスを定義する行)を修正しなければなりません。

Apache for Win32 と Sambar Server では修正が必要です。AN HTTP Server ではデフォルトではこの行を見ないので、その場合は修正の必要はありません。IIS、04webserver の場合も修正の必要はありません。

XMailCFG のすべての CGI スクリプトファイルの第 1行は以下のようになっています。

#!C:/usr/perl/bin/perl.exe

Perl を C:\usr\perl にインストールしているならこれはこのまま使えます。他の場所の場合、C:/usr/perl/bin/perl.exe の部分を実際のパスに変更する必要があります。

update.bat を利用してください。

あなたのコンピュータに Perl が正しくインストールされているなら、XMailCFG の setup フォルダにあるバッチファイル update.bat を使って上記の作業を自動化することができます。エクスプローラから update.bat をダブルクリックしてください。

  • XMailCFGは、DOS窓から
 cd c:\www\cgi-bin\xmailcfg\setup\
 update.bat
  • K4は、DOS窓から
 cd c:\www\cgi-bin\k4\setup\
 update.bat

詳しくはサンプルの「4.CGI スクリプトの修正」を参照してください。

XmailCFGの表示

ブラウザーを開いて、http://localhost/cgi-bin/xmailcfg/ を呼び出す。
次のような画面が表示されれば、成功です。サンプルページ

メニュー [基本セットアップ] を実行

サンプルの6.メニュー [基本セットアップ] を実行を参照してください。

XMailCFG環境設定
XMailCFG の最低限の実行環境を設定します。

パスワードは、セキュリティーを考えて8桁にしましょう。

メールBOXの最大容量は、標準で10Mなので、100Mに変更しました。

ポストマスターのメールアドレスを定義します。通常は、postmaster@xxxxx.xxx.jp とかにします。

K4のインストールディレクトリーはこの場合、c:\www\cgi-bin\k4 です。

最後に「環境保存」をクリックして、設定を保存します。
一旦保存すると、この画面はもう現れませんので、次回からは、メニュー[環境設定]から行ってください。

レジストリの登録
レジストリに XMail が使用する情報を登録します。
登録2のみCGI(K4を除く)からメールを送信する場合は、ドメインを登録します。

「登録する」をクリックして保存します。

サービスの登録
XMail を Windows 2003/2000/XP のシステムサービスとして登録します。これにより、Windows にログオンしなくても XMail が自動的に起動し、バックグラウンドで動作するようになります。
「サービスを登録する」クリックして登録しましょう。
2回目以降は、メニュー[サービス]から、サービスの開始・停止・再起動・登録・削除が出来ます。
基本セキュリティ
XMail のコントロールサーバへのアクセスを許可するコンピュータの IPアドレスを定義します。XMail をインターネットで使う場合、デフォルトの定義 "0.0.0.0 0.0.0.0 ALLOW 1" を必ず削除し、新たな定義を行ってください。

インターネットの別の場所から XMail のコントロールコマンドを使う場合のIP制限です。XmailCFGを使用する場合は、気にする必要はありません。
2回目からは、メニュー[セキュリティー]のCTRLアクセス許可(基本セキュリティ)からも変更できます。この場合、LocalHostからのみ有効にしました。

SMTP リレー許可
XMail を利用して外部のあて先にメッセージを送ることを許可するクライアントコンピュータの IP アドレスを指定します。 XMail をインターネットで使う場合は必ずリレーの制限を行ってください。
変更前

変更後

イントラネットの環境IP(127.0.0.1 and 192.168.xx.xx)のみ許可するように設定します。
2回目からは、メニュー[セキュリティー]のSMTP リレー許可(重要)からも変更できます。

XMail環境設定
XMail の環境設定を行い、そのサービスを起動します。
変更前

*印は、必須項目です。
変更後
SMTPゲートウェイ (DefaultSMTPGateways)の項目は、プロバイダーのSMTPサーバーのアドレスまたは、ホスト名を記述します。通常は空白でかまいませんが、ここで指示するホスト名にメールを送る以外、メールを受け付けないプロバイダーは、ここで設定します。

「この内容で上書き保存」クリックして保存します。

メニュー[セキュリティー]を実行

追加でセキュリティーの設定をしておきましょう。

FINGER アクセス許可
FINGER サーバへのアクセスを許可するコンピュータの IP アドレスを定義します。XMail をインターネットで利用する場合はアクセスの制限を行うことをすすめます。
変更前

変更後

LocalHostからのみ有効にしました。

注意

XMailCFG をインストールするフォルダ(ディレクトリ)に対して基本認証など適切なアクセスコントロールをセットアップし、特定のユーザまたは環境からのみ XMailCFG にアクセスできるようにしておく必要があります。さもないと、あなたの XMail が第三者によって不正に操作されてしまう危険があります。

ドメインの追加

ダイナミックDNSより与えられている、ドメインをここで登録します。

メニュー[ドメインの管理]を実行します。

はじめに、すでに登録してあるxmailserver.testを削除しましょう。
該当ドメインをクリックして、現れるメニューから「このドメインを削除」を選択します。

削除できました。

改めて「ドメイン」 xxx.xxx.jp を入力しましょう。「メールボックス制限」を最大値と同じ100MBにしましょう。
最後に、「追加する」クリックして登録してください。ドメイン一覧に登録したドメインが表示されれば良いです。間違っていれば、削除して再登録しましょう。

ユーザーの追加

このメールサーバーの管理者としてのアカウントユーザ Postmaster を登録しましょう。
同様に家族および仲間のメールアカウントを増やしてください。しかし、メールアカウントは異なる(ニックネームなど)が、これらに届くメールは、ひとつの登録したメールアカウント(ここで登録)に集約したい場合は、ここでの登録を控えて、後項目で説明するエイリアス機能を使います。

メニュー[ユーザの管理]を実行します。

はじめに、ユーザー一覧で不要でなユーザーを削除してから、再登録しましょう。

  • 所属ドメインは、先ほど登録したドメインを選択します。
  • ユーザ名は、postmaster を登録します。(漢字は使わない、半角英数字を使う)
  • 任意のパスワードを、登録します。
  • メールボックスの制限は、100MB最大で登録します。

最後に、「追加する」クリックして登録してください。

Windowsのメールソフトで、

  • postmaster@xxxx.xxx.jpあてにメールを遅れる準備が出来ました。
  • 届いたメールボックス内のメールを取り出すことが可能です。

ここでは、ユーザーごとのメールボックスが作成されます。

エイリアスの登録

エイリアスとは別名です。そして、XMail には一般エイリアスとドメインエイリアスとの区別があります。ここでは、一般エイリアスで登録します。

メニュー[エイリアスの管理]を実行します。

ドメイン一覧に、すでに登録したドメインをクリックしてください。

  • エイリアス名は、登録する別名を入力します。
  • 関連付けするユーザー名を選択します。

最後に、「追加する」クリックして登録してください。
ここで登録した、別名宛のメールは、すべて関連付けするユーザーのメールBOXに送られます。
webmaster@xxxx.xxx.jp あてのメールは、postmaster@xxxx.xxxx.jp に送られる
info@xxxx.xxx.jp あてのメールは、 postmaster@xxxx.xxxx.jp に送られる

K4WEBメーラー

以上でメールサーバーの設定は終わりです。これからは、インターネット上からブラウザーを介してこのメールサーバーにアクセス出来る環境を作ります。これは、Xmailのメールボックスを直接管理します。

メニュー[K4の管理]を実行します。

「メール環境の設定」をクリックします。

赤*印は、必須入力項目です。他の項目は必要に応じて設定を変えてください。ここでは、ログとカレンダーの表示を有効にしてます。そのほかはそのまま標準のままにします。

■基本設定

管理者メールアドレス postmaster@xxxxx.xxxx.xxxx.jp

デフォルトのログアウト先 URL http://e-lovers2.hp.infoseek.co.jp/

不正操作時のリダイレクト先 URL http://e-lovers2.hp.infoseek.co.jp/

デフォルトドメイン

シングルドメイン

トップページ      ○標準  ●メールボックス管理 ○ドメイン管理

検索フォームの表示 ○Google ○Yahoo! ●表示しない

カレンダーの表示    ●行う ○行わない

ロギング       ●行う ○行わない

つぎは 各ユーザにメールボックスの管理を許可し、localhost とポート25を確認します。「メールボックスの管理許可する」で、K4のメニューにメールボックスの管理メニューを表示することが可能です。

■メールボックスの管理

メールボックスの管理 ■許可する □許可しない

接続先 SMTP サーバ localhost

接続先 SMTP ポート 25

送信時の SMTP HELO ドメイン localhost

「ログインメッセージ」をクリックします。

K4 に XMail のローカルユーザがログインしたときに表示する管理者からのメッセージを作成・編集します。このメッセージはその K4 にログインする全ドメインの全ユーザに対して表示されます。

■メッセージのタイトル

タヌキの部屋

■メッセージ本文

タヌキの部屋のWEBメールにようこそ

メニュー[ユーザの管理]を実行します。

該当ユーザーをクリックして、表示されるメニューからK4アクセス権をクリックします。
下の画像のように、チェックを入れます。最後に「更新する」をクリックして更新します。

K4の表示

ブラウザーを開いて、http://localhost/cgi-bin/k4/ を呼び出す。
次のような画面が表示されれば、成功です。サンプルページ

webmaster@xxxx.xxx.jp宛てに、メールが配信されるか確かめてください。

Windowsメーラーの設定

次の画像のようにメーラーの設定を行ってください。

設定箇所説明
メールアドレスpostmaster@xxxxx.xxxx.jpメール送信時の送信元アドレスに使われます。
POPサーバーlocalhost または コンピューター名SMTPサーバーのメールボックスにアクセスします。
SMTPサーバーlocalhost または コンピューター名SMTPサーバーへメール送信仲介を頼む
ユーザーIDpostmaterXmailCFGでユーザ登録した名前
パスワード*********XmailCFGでユーザ登録した時のパスワード
受信メールをメールサーバーに残す任意(残すにした場合は、Xmailの該当メールボックス内にメールが残ります。 残さない場合は、Xmailの該当メールボックスから取り出されて使っているメーラーのメール受信箱に格納されます。)

info@xxxx.xxx.jp宛てに、メールが配信されるか確かめてください。

ファイアーウオールの設定

これは、メールサーバーマシンに必要な設定で、クライアントマシンには、関係ありません。

  • Windowsのファイアーウール
    • 受信ポート TCP 25(SMTP)、110(POP)を開ける。
  • ウイルスバスターなどに付くファイアーウオール
    • 受信ポート TCP 25、110を開ける。
  • ルーターのアドレス変換で
    • 受信ポート TCP 25を開ける。110は開けないように!

これは、Internet Test Tool(当サイトのおすすめソフトを参照)を使って、xxx.dip.jp にサービス検索をかけた結果です。

Port   ServiceName         Description                                     State

21     ftp                 File Transfer [Control]                         TCP 接続可
25     smtp                Simple Mail Transfer                            TCP 接続可
80     www-http            World Wide Web HTTP                             TCP 接続可
110    pop3                Post Office Protocol - Version 3                TCP 接続可
443    https               https  MCom                                     TCP 接続可

取得したドメインにてメールアドレス用IPが登録されてるかを確認

  • 取得ドメインにてMXレコードの提供をしていない無料サイトがあります。

あるドメイン(組織)から別のドメインに対してメールを送信しようとするとき、送信元のメール・サーバは、送信先ドメインのDNSサーバに対してMXレコードの情報を問い合わせる。MXレコードには、当該ドメインにおけるメール・サーバとなっているコンピュータの名前(FQDN名)とIPアドレスなどの情報が含まれており、これを基にしてメールの送信先(通常はSMTPのサーバ)を知ることができる。そして、求めたIPアドレスに対してSMTPプロトコルで接続し、メールを送信する。もし相手先ドメインのMXレコードの情報が得られなければ、あて先がないというエラーになる。MXレコードの情報は得られるが、メール・サーバへの接続ができなければ、メール・サーバが(一時的に)ダウンしているものとみなし、しばらく待ってから再度送信を試みる。

まずDNSサーバーに問い合わせて取得ドメインのグローバルIPアドレスが返信するか確認します。

C:\> nslookup atari.dip.jp
Server:
Address:  192.168.xx.1

Non-authoritative answer:
Name:    atari.dip.jp
Address:  219.106.xxx.xxx

MXレコードを確認するには、DOS窓で、次のコマンドを入力します。

C:\> nslookup -type=mx atari.dip.jp
Server:
Address:  192.168.xx.1

Non-authoritative answer:
atari.dip.jp MX preference = 10, mail exchanger = atari.dip.jp     ...
----
atari.dip.jp internet address = 219.106.xxx.xxx       ...
----

返信の中に、 ↓△あれば、インターネットから直接このメールサーバーに25ポートと使って、メールが送られます。

無料WEBメールYahooなどから、取得したドメインのメールあてに送信して、届くか確かめてください。

メールサーバーの移動または削除する場合

移動元サーバーの

  1. XmailCFGの[基本セットアップ]メニューにて
    1. サービスの停止・削除を実施
  2. regeditコマンドで、HKEY_LOCAL_MACHINE\SOFTWARE\GNU\ を削除
  3. 次の展開した場所をディレクトリーごと圧縮して、移動先サーバーで展開する。
    1. Xmailは、c:\xmail
    2. XmailCFGは、c:\www\cgi-bin\xmailcfg
    3. K4は、c:\www\cgi-bin\k4
  4. 移動元ディレクトリは、ディレクトリーごと削除してください。
  5. ファイアーウオールで開けたTCP受信ポートを閉じる。

移動先サーバーの

  1. CGIスクリプトの修正として、エクスプローラから setup\update.bat をダブルクリックしてください。
    1. XmailCFG,K4
  2. XmailCFGの[環境設定]メニュー「XMailCFG 環境設定」にて、展開先ディレクトリの入力を行い、環境保存をおこなう。
  3. XmailCFGの[基本セットアップ]メニューにてレジストリーの登録とサービスの登録・開始を実施
  4. ファイアーウオールでTCP受信ポートを開ける。

XMail をバージョンアップするとき

  1. 動作中の XMail サービスを停止します。停止には、次のいずれか一つを実行してください。(1) [コントロールパネル]-[サービス]パネルを利用、(2) コマンドプロンプトから net stop XMail を実行、(3) XMailCFG のメニューの[サービス]から[サービスの停止]。
  2. XmailCFGの[環境設定]メニュー「バックアップ・リストアー」にて、「バックアップを実行」
  3. ダウンロードしたファイルをTEMPフォルダーなど適当なフォルダーに展開する
  4. 展開して現れたフォルダー内のファイルを各既存フォルダーに上書きする。
    1. XMAILCFGのバージョンアップの場合、展開済みのすべてのファイル、フォルダーを既存の XMAILCFG に上書きコピーします。
    2. K4のバージョンアップの場合、展開済みのすべてのファイルを既存の K4 に上書きコピーします。
      1. ActivePerl 5.8 対応拡張モジュールについても K4/cgi フォルダーに上書きコピーする。
    3. XMAILのバージョンアップの場合、展開済みのすべてのファイル、フォルダーを既存の XMAIL に上書きコピーします。
      1. 新しい実行ファイル群(*.exe) を既存のものに上書きコピーします。バイナリパッケージを展開している場合は xmail フォルダ内の *.html や *.txt も上書きします。
  5. バージョンアップ後、XmailCFGの[環境設定]メニュー「バックアップ・リストアー」にて、「「リストアーを実行」
  6. XMailCFG を使う、メニュー [環境設定] から [XMail環境設定] を実行し、「上書き保存」クリック
  7. XMailCFG を使う、メニュー [環境設定] から [XMailCFG環境設定] を実行し、「上書き保存」クリック
  8. XMailCFG を使う、メニュー [K4 の管理] から [環境設定] を実行し、「上書き保存」クリック
  9. 動作中の XMail サービスを開始します。開始には、次のいずれか一つを実行してください。(1) [コントロールパネル]-[サービス]パネルを利用、(2) コマンドプロンプトから net start XMail を実行、(3) XMailCFG のメニューの[サービス]から[サービスの開始]。
注意:XMail 1.23 以前から 1.24 へのアップデートの注意
XMail 1.23 以前から 1.24 へのアップデートは XMail バイナリを上書きし、XMailCFG から [XMail環境設定] を上書きで行なうだけですが、その結果 XMail が起動しない場合または送受信に失敗する場合は以下のようにしてください。
  1. XMail が起動しない場合、Microsoft のダウンロードセンターなどから "Microsoft .NET Framework 2.0" または "C++ ランタイム"(Microsoft Visual C++ 2005 再頒布可能パッケージなど)をインストールしてみてください。
  2. SSL/TLS を利用する場合は XMail 同梱の libeay32.dll と ssleay32.dll をパスの通った場所(Windows の system32 フォルダなど)にコピーしてください。
  3. SSL/TLS を利用する場合は XMail の MailRoot 内に証明書(server.cert) と秘密鍵(server.key) を作成してください。作成時にエラーがある場合は前項(1,2)の作業を確認してください。
  4. SSL を利用しない場合でも、クライアントから STARTTLS(STLS) による接続があると、前項(1-3)の作業が行なわれていない場合は接続に失敗します。

CGIにてSendmailを使うとき

該当CGIスクリプトを少し修正しましょう。
CGIスクリプトの sendmeil をキーに検索して、次の箇所を見つける。
変数 $mailfrom $frommail は、プログラムによって変数名が異なります。

if(open(ML,"| $sendmail_path $mailto")){

$header = "From: $mailfrom\n";

......

}

を次のように[-fオプション]を追加する。

if(open(ML,"| $sendmail_path -f$mailfrom $mailto")){

$header = "From: $mailfrom\n";

$header = "To: $mailto\n";

......

}

または、[-tオプション][-fオプション]を追加する。$mailtoを削除する。

if(open(ML,"| $sendmail_path -t -f$mailfrom ")){

$header = "From: $mailfrom\n";

$header = "To: $mailto\n";

......

}

  • open行の [-f....] がない場合、送信者が分からないため、エラーになります。ヘッダー行に "From: ..."行があってもです。
  • open行の [$mailto] は、メールヘッダーのDelivered-To: 行に挿入されて送信されます。ヘッダー行に "To:..."行が欠落していても!
  • open行の [-t] は、$header行の"To: ..."を参照して、送信先を決定するのでopen行にあて先($mailto)を記述しない。
    • ここでは、関係ないが、To: ヘッダを書いても書かなくても強制的につけるプロバイダーがあるので注意

送信エラーについてXmailserverBBSに次の記述があります。

  • 1.21 の sendmail の場合です
  • 1. sendmail を -f オプションをつけて使うときは -fxxx@yyy.jp のように送信者アドレスをつける必要がある。-f オプションだけではエラーになる。
  • 2. -f オプションそのものをつけない場合、-f オプションと送信者アドレスは以下のように自動的に補完される。
    • (1) sendmail の実行ユーザ名(SYSTEM またはローカルログオンユーザ名など)にレジストリの DEFAULT_DOMAIN(XMailCFGの[レジストリの登録]-[登録2 -- sendmail 実行時の送信者アドレス]で登録する場所) に登録されたドメイン名が @ で連結されて -fSYSTEM@xxxx.jp のように補完される。
    • (2) DEFAULT_DOMAIN の登録がなければ -fSYSTEM@ と補完される。これはメールアドレスとして不適切なので転送先でエラーになる可能性がある。

第三者メール中継チェック

SPAMメール(不正中継)をさせない為の設定がされているかを
abuse.netにて中継メールチェックができます。
Address to test: にドメイン名を入力
「TestForRelay」ボタンをクリックして、実行します。

最後の行に次が表示されれば良いです。

Relay test result
All tests performed, no relays accepted.

おわり

お疲れさま、あとは、いろいろカスタマイズしてください。
最後にXmailserver BBSを紹介します。