mail_system

メールシステムについて

これは,「スポーツ情報部勉強会(システム編)--MAILシステムについて--」の資料をまとめたものである.

2002.6.20. 17:00-
スポーツ情報研究部
担当:宮地 力

1. メールシステムの仕事

電子メールのやりとりする.ある送り手から,ある受け手に電子メールを送る.

  • 正確に相手に送ること
  • すぐに相手が受け取られなくても,一定期間保持して,また送る
  • 送る内容も様々なものがある(文章,日本語,絵,音etc..)
  • 古い仕組との整合性が必要

仕事の内容によって,2つのプログラムに大別される.

  1. メール転送プログラム(MTA: Mail Transfer Agent) メールの転送などの役割をになうソフトウエア.例えば,以下などが有名.
    • unix--sendmail, qmail, postfixなど
    • Windows系--sendmail(unixのsendmailを発展的に会社化したもの)
  2. ユーザーメールプログラム(MUA: Mail User Agent) メールを受信,発信するユーザーのためのソフトウエア.例えば,以下のものがある.
    • unix--mail, mailxなど
    • Windows系--OutlookExpressなど
    • Mac系--Eudoraなど

2. メールの流れの概要

  1. MUAでメール作成
    SMTPを利用して,MTAに転送.
  2. MTAは,メールの宛て先を調べ,その宛て先のMTAにメールを転送
    SMTPを利用して,宛て先のMTAにメールを転送.
  3. MUAで,メールを定期的にチェック
    POPを利用して,MTAの受け取っているメールを調べる
  4. MUAでのメールの受け取り

mail_transfer.png

3. MTAのやること

利用されるプロトコルはSMTP(Simple Mail Transfer Protocol)

送り先のアドレスから,どうやって次の送り先に送るかを決定する.
現在なら,メールアドレスの宛て先部分から,送り先のIPアドレスを決定する.

例)
宛て先:Chikara.MIYAJI@jiss.ntgk.go.jpの場合,jiss.ntgk.go.jpのアドレスから, 転送先のMTAを決定する.
この問い合わせは,DNSに対してなされる.(MXレコード引き)

  1. MTA-->DNSに対して「jiss.ntgk.go.jpのメール受け取り先のアドレスを教えてくれ」
  2. MTA<--DNS.DNSは,「sv06-mail.jiss.ntgk.go.jpに送ってくれ」と返答
  3. MTA-->sv06-mailに対しSMTPを使い,「メールをおくりたい」
  4. いくつかのやりとりのすえ,最終的には,MTAからsv06-mail(MTA)に対してメールが 送られる.
(注意)最近のMTAはむやみにどんなメールでも転送をするということをしない.
これは,スパムメールが,そのMTAを利用して,他のMTAにメールを送ることを
防ぐため.そこで,例えば,JISSのMTAは,「jiss内からのメールは,転送をする」
「JISS外からJISS内へのメールは,転送する」,しかし「jiss外からjiss外への
メールは転送しない」という規則に従っている.

MTAは,TCP/IPのプロトコルで,ポート番号の25を利用する.
例えば,以下のtelnetによるセッションをみよ;

% telnet sv06-mail.jiss.ntgk.go.jp 25
Trying 172.16.81.236...
Connected to sv06-mail.jiss.ntgk.go.jp.
Escape character is '^]'.
220 sv06-mail.jiss.ntgk.go.jp ESMTP Sendmail for
NT Build 101 8.9.3/NT-8.9.3; 
Thu, 20 Jun 2002 00:10:29 +0900
HELP
214-This is Sendmail version Build 101 8.9.3
214-Topics:
214-    HELO    EHLO    MAIL    RCPT    DATA
214-    RSET    NOOP    QUIT    HELP    VRFY
214-    EXPN    VERB    ETRN    DSN
214-For more info use "HELP &lt;topic&gt;".
214-For local information send email to Postmaster at your site.
214 End of HELP info
QUIT
221 sv06-mail.jiss.ntgk.go.jp closing connection
Connection closed by foreign host.
%

届いたメールから,その経路を調べることもできる.以下は,メールのヘッダ情報.

Received: from opera.tech-arts.co.jp
    (opera.tech-arts.co.jp [211.4.249.181])
 by sv06-mail.jiss.ntgk.go.jp (Build 101 8.9.3/NT-8.9.3)
    with SMTP id AAA01065
 for <Chikara.MIYAJI@jiss.ntgk.go.jp>;
    Thu, 20 Jun 2002 00:47:40 +0900
Received: (qmail 7457 invoked from network);
    19 Jun 2002 15:57:09 -0000
Received: from localhost (HELO ml.tech-arts.co.jp) (127.0.0.1)by
localhost with SMTP; 
19 Jun 2002 15:57:09 -0000
Date: Wed, 19 Jun 2002 19:11:32 +0900
From: MADIA <madia@lily.freemail.ne.jp>
Reply-To: macosx-dev-jp@ml.tech-arts.co.jp
Subject: [macosx-dev-jp:02092] Re: デバイスアクセスについて
To: macosx-dev-jp@ml.tech-arts.co.jp
Message-Id: <20020619184926.0E37.MADIA@lily.freemail.ne.jp>
In-Reply-To: <20020619045452.16874@po2.yano-el.co.jp>
References: <20020619121310.0E2F.MADIA@lily.freemail.ne.jp>
<20020619045452.16874@po2.yano-el.co.jp>
X-ML-Name: macosx-dev-jp
X-Mail-Count: 02092
X-MLServer: fml [fml 4.0.2 release (20010723/4.0.2)];
post only (only members can post)
X-ML-Info: If you have a question,
send e-mail with the body"help" (without quotes) 
to the address macosx-dev-jp-ctl@ml.tech-arts.co.jp;
help=<mailto:macosx-dev-jp-ctl@ml.tech-arts.co.jp?body=help>
X-Mailer: Becky! ver. 2.00.07
Mime-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
Precedence: bulk
Lines: 44
List-Id: macosx-dev-jp.ml.tech-arts.co.jp
List-Software: fml [fml 4.0.2 release (20010723/4.0.2)]
(以下本文)

4. MUAのやること

もちろん,ユーザーのメールの受信,送信,メールの保存などなど.ここでは,送受信について.

  • ユーザーがメールを送りたい時に,MTAに対してメールを送る.
    ここで使われるプロトコルは,SMTP.
    例えば,JISSでは,smtp.jiss.ntgk.go.jpがMTAである.
  • ユーザーがメール受信をするとき,POPプロトコルやIMAPプロトコルを使い,
    メールをチェックして,ユーザー宛に届いたメールを取り出す.

例えば,ユーザーがMUAを使うと

  1. MUA-->POPサーバープログラム:POPプロトコルを使い,「メールがあるか」尋ねる.
  2. MUA<--POPサーバー:何通ある.
  3. MUA-->POPサーバー:メールを送れと命令.
  4. MUAにメールが到着する.

以下は,telnetを利用したPOPプロトコルのセッション.

% telnet pop.jiss.ntgk.go.jp 110
Trying 172.16.81.236...
Connected to sv06-mail.jiss.ntgk.go.jp.
Escape character is '^]'.
+OK Sendmail POP3 Welcomes You 3.0.2.101 
<0258.3D10AAE7@sv06-mail.jiss.ntgk.go.jp>
quit
+OK Foreign host closing connection
Connection closed by foreign host.
%

(1) POPプロトコル,APOP,IMAPの違いなど

  • POPプロトコルは,パスワードがそのままネットに流れるので危険性が高い.
  • APOPは,パスワードを暗号化してネットに流すのでPOPより安全.
ただし,メールの本文は,ネットに流れた時には,そのままである.
もし,第3者が見ようとするとみることができる.本文を安全に転送する
には,本文の暗号化の必要がある.メールは「はがき」とおなじ.

IMAPは,メールの本文をサーバーに置く.POPはサーバーから持ってくる.

ちなみに,Gmaxは,POPもIMAPも利用していないが,メールは基本的に サーバー側に置かれて,それをMUAが見ているやりかた.(GMaxは以前JISSで利用されていた システムの名前)

(Question) POPやIMAPのポート番号は?

5. メールの応用編

複数のメールアドレスに送る仕組をつくると,mailing-listサービスができる.

メーリングリストプログラムは,

  1. メールをMTAが受ける-->自動的にMLプログラムに送られ
  2. MLプログラムが,リストのメンバーにそのメールを発送
  3. MTAがリストメンバーに発送する

例えば,fml(fukuchan-mailing-list)などが有名.その他には, majodomoというプログラムもある.Listservも有名.

6. JISSのメールシステム(2002年当時)

JISSでは,DNSに以下のような記述がある.
これが,jiss.ntgk.go.jpのDNS設定ファイル.

;forward zone file: jiss.ntgk.go.jp
;
$TTL 86400
$ORIGIN jiss.ntgk.go.jp.
@ IN SOA sv10-outdns.jiss.ntgk.go.jp. postmaster.jiss.ntgk.go.jp. (
   2002011701	; serial number in YYYYMMDDxx format
   3600  ; refresh interval for slave ns to refresh from master
   1800  ; retry by slave ns if master ns is unreachable
   864000	  ; expire from slave cache
	  ;when master ns is unreachable for this period
   86400   ; default time-to-live in any DNS cache
   )
;
;nameservers
@		IN	NS	sv10-outdns.jiss.ntgk.go.jp.
@		IN	NS	dns3.odn.ne.jp.
;mail
@		IN	MX	10 sv06-mail.jiss.ntgk.go.jp.
;
@		IN	A	211.127.219.70
sv06-mail	IN	A	211.127.219.70
macosx		IN	A	211.127.219.72
sv10-outdns	IN	A	211.127.219.65
sv09-outweb	IN	A	211.127.219.68
localhost		IN	A	127.0.0.1
saltlake		IN	A	211.127.219.71
;
mail			IN	CNAME 	sv06-mail.jiss.ntgk.go.jp.
www		IN	CNAME	sv09-outweb.jiss.ntgk.go.jp.
pop			IN	CNAME	macosx.jiss.ntgk.go.jp.
smtp		IN	CNAME	macosx.jiss.ntgk.go.jp.
;

そこで,jiss.ntgk.go.jp宛のメールは,sv06-mail.jiss.ntgk.go.jpが 受け取ることになる.

sv06-mailは,NT4のマシンで,なかに,sendmailというプログラムが 動いている.これは,sendmail社のプログラム.(unix上のフリーの sendmailプログラムと間違えないこと) sendmailは,MTA(sendmailを元にした)であり,かつPOPサーバーでもある.

(1) 問題点

  • ウイルスチェックがない
    チェックプログラムを間にいれる
  • sendmailのversion upに追い付いていない.費用問題
    (他のMTAに移行)
  • sendmailは,バグの多いプログラムで,かつ設定が大変.
  • mailing-listに対応していない
    他のマシンでMLを運用
  • Gmaxとの連携がわるい
    Gmaxをやめる

(2) 将来的には

Linux系のMTAのためのシステムに移行して,MTAも,postfixなどの 最新のものを利用する.

  • (利点)
    • 新しいので,バグが少ない.
    • mailing-listが運用しやすい.
  • (欠点)
    • 移行しなくてはいけない.
    • Gmaxとの連携が問題有り.
    • postfixがいいか?

7. その他のメールの問題など

  • ウイルス対策
    メールの添付ファイルによる,ウイルス被害が増加している.その対策を とる必要がある.
    • メールゲートウェイの設置.
    • MUAの制限.Outlookを利用しない等.[では,何がいい?]
  • 暗号化の支援
    メール暗号化をするためには,公開暗号システムを利用すべきである.
    • PGPなどがある. そのためには,各ユーザーの公開暗号キーを公開出来るようにしておかないと使いにくい.
    • webでの公開など.
      公開キーサーバーの準備など.
  • メールアドレス帳の共通化
    現在は,LDAPを利用したメールアドレス帳がひろまりつつある. これを利用すると,いろいろなMUAからアドレス帳を共有できる.

添付ファイル: filemail_transfer.png 5件 [詳細]

このページの著作権は,すべて宮地 力に所属します.
もし,内容を利用される場合は,宮地までメールにて,ご連絡ください.
また,このページへのリンクは,フリーです.