<!--
   $FML$
-->


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

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

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

<para>
メールは行方不明になるよりも重複して届いた方がましと考えられています。
よって MTA は配送が失敗した可能性のある場合、重複の可能性があってもあ
えて再配送を行ないます。
</para>

<para>
ただ何通も送られてくるようであれば何か異常があります。
</para>

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

<para>
ＭＬ受信者の一部にだけ送られているなら &fml8; 以外の配送システムのどこ
かが犯人です。
一方、ＭＬ受信者全員に送られているなら &fml8; が犯人でしょう。fml のロ
グを調べて下さい。
</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: はキャッシュされているので、そのメールが回り回って返っ
てきても弾きます。
</para>

</sect2>


</sect1>
