<!-- -*- mode:text coding:euc-jp -*-
   $FML: delivery.sgml,v 1.2 2008/08/19 07:11:02 fukachan Exp $
-->


<sect1 id="troubleshoot.delivery.duplication">
	<title>
	同じメールが何度も送られてくる場合
	</title>

<para>
元々送信者が複数のメールを出していたというケースもありえます。
この場合メールの Received: や Message-Id: が異なります。
</para>

<para>
同じメール(たとえば Message-Id: が同一)
<footnote>
<para>
&fml8; は受信したメールの Message-Id: の記録をとっています。
&fml8; がこれらの Message-Id: が同じメールを受けとった場合、
最初の一通だけが通過します。 
</para>

<para>
メーリングリストからのメールが複数送られてくる、
つまり「再送」されてきた場合、
&fml8; ではなく、
そのあとの MTA による再送の可能性のほうが高いです。
もちろん &fml8; 自体が MTA 化した今では &fml8; による再送もありえます。
</para>
</footnote>
が二通届いたという場合、単なる再送かもしれません。
</para>

<para>
電子メール業界では
「行方不明になるくらいなら重複して届いた方がマシである」
と考えられています。
データを失うくらいなら冗長でも重複して届けてしまう方が良いです。
よって MTA は配送が失敗した可能性のある場合、
重複の可能性があってもあえて再配送を行ないます。
</para>

<para>
ただ何通も送られてくるようであれば、やはりシステムに何かかの異常があります。
</para>

<para>
いずれにせよ調べるべきポイントは「だれに同じメールが送られているのか？」です。
</para>

<para>
ＭＬ受信者の一部にだけ送られているなら
&fml8; 以外の配送システムのどこかが犯人です。
一方、ＭＬ受信者全員に送られているなら &fml8; が犯人でしょう。
まずは &fml8; のログを調べて下さい。
</para>

<para>
どの場合でも、メールヘッダを解析する必要があります。
複数届くというメールのサンプルを手に入れて下さい。
ただし、
メールヘッダが省略されていない完全な形のものを手に入れないと意味がありません。
</para>


<sect2>
	<title>
	メール受信時の失敗	
	</title>

<para>
同じ内容の複数のメールで本文だけでなく
From: や Message-ID: や Received: までが同じです。
</para>
	
</sect2>


<sect2>
	<title>
	どこかの MTA が再配送している。
	</title>

<para>
同じ内容の複数のメールで本文や From: は同じでも 
Received: が異なります。
メールサーバ A B C を通過してくると次のような
Received: がついているはずです。
<screen>
Received: by サーバC 時刻C
Received: by サーバB 時刻B
Received: by サーバA 時刻A
</screen>
再送しているサーバ以降の時刻は各メールで異なるはずですから、
時刻の異なる Received: が現れているところが犯人のサーバです。
たとえば
<screen>
Received: by サーバC 時刻C'
Received: by サーバB 時刻B
Received: by サーバA 時刻A
</screen>
なら B と C の間で問題があります
（まず、まちがいなく B が犯人 ）。 
</para>
	
</sect2>


<sect2 id="troubleshoot.delivery.loop">
	<title>
	同じメールが何度も送られてくる場合(メールのループ)
	</title>

<para>
&fml8; から MTA にいって MTA
(もしくは配送されていった先のどこか別のサイトの MTA)
から &fml8; に再度メールが配送される可能性がないわけではありません。
</para>

<para>
ループが起こらないように、
受信したメール、
&fml8; が生成して送信したメールの Message-Id: はキャッシュされているので、
そのメールが回り回って返ってきても &fml8; はループとみなして配送しません。
</para>

<para>
なんにせよ、
その再送されてくるというメールの完全なヘッダを手に入れて、
それを分析する必要があります。
</para>

</sect2>


</sect1>
