[Mew-dist 06337] imjoin adds extra header fields
OBATA Noboru
obata at example.com
1998年 9月 7日 (月) 21:16:32 JST
小幡です。
# release おめでとうございます。 初めて Message/External-Body な
# メールを頂き、何だろうと C-c C-e を押すと、勝手に ftp され、大
# 変びっくりしました。(笑)
時々 message/partial なメールが届き imjoin のお世話になっている
のですが、その結果得られたメールに、いくつかのヘッダが重複するこ
とがあります。
調べましたところ、enclosed message のヘッダが適切に取り除かれて
いないようでした。
RCF2046 の 5.2.2.1. によりますと、
:
(2) initial enclosing message の "Content-*", "Subject",
"Message-ID", "Encrypted", "MIME-Version" *以外* のヘッダは
順番を保ったまま新しいメッセージにコピーしろ。
(3) enclosed message の "Content-*", "Subject", "Message-ID",
"Encrypted", "MIME-Version" ヘッダは順番を保ったまま新しいメッ
セージに加えろ。それ以外は無視して捨てろ。
:
と読めました。ここで (2) と (3) はそれぞれ次のヘッダを指している
と解釈しました。間違ってましたらご指摘ください。
+------------------------+
|Return-Path: ... | ↑
|Received: ... | (2)
|... |
|Subject: ... | ↓
| |
| +--------------------+ |
| |Subject: .. | | ↑
| |To: ... | | (3)
| |... | | ↓
| | | |
| |本文 | |
| | | |
〜〜〜 〜〜〜
現在の imjoin は (3) をすべて拾っています。そのため Subject など
が重複することが分かりました。
そこで、これを修正しようとしたパッチを作りました。このあたりの事
情に詳しい方に何とかして頂けたらと思います。よろしくお願いします。
----
小幡 昇 (obata at example.com)
-------------- next part --------------
--- imjoin.in.orig Sat Sep 5 08:03:54 1998
+++ imjoin.in Mon Sep 7 21:06:11 1998
@@ -167,13 +167,26 @@
foreach (split("\n", $header)) {
next if (/^[ \t]/ && $skip);
$skip = 0;
- if (/^(Content|Message-ID)/i) {
+ if (/^(Content|Message-ID|Subject|Encrypted|MIME-Version)/i) {
$skip = 1;
next;
}
last if (/^\n/);
push (@Message, "$_\n");
}
+ $header = <MSG>;
+ $skip = 0;
+ foreach (split("\n", $header)) {
+ next if (/^[ \t]/ && $skip);
+ $skip = 0;
+ if (! /^(Content|Message-ID|Subject|Encrypted|MIME-Version)/i) {
+ $skip = 1;
+ next;
+ }
+ last if (/^\n/);
+ push (@Message, "$_\n");
+ }
+ push (@Message, "\n");
} else {
# skip header part
<MSG>;
Mew-dist メーリングリストの案内