[PREVIOUS CHAPTER] [NEXT CHAPTER]
7 Subject はっく

7.1	すれっどの先頭にだけ番号をふる?

fml-support: 07772 近辺

Q: スレッドの先頭の記事にだけ Subject: に通し番号を振り、返信メールに
   関しては Subject: はいじらない

A: とても面倒のようです。

   1通目: Subject: [ML:1] 元の件名
   2通目: Subject: Re: [ML:1] 元の件名
   3通目: Subject: Re: [ML:1] 元の件名
   4通目: Subject: [ML:4] 別の件名
   5通目: Subject: Re: [ML:4] 別の件名

なら次の HOOK でいけます。

   $SMTP_OPEN_HOOK = q#
       if ($Envelope{'h:subject:'}  =~ /^\s*Re:/i) {
           $Envelope{'h:Subject:'} = $Envelope{'h:subject:'};
   	undef $SUBJECT_FREE_FORM;
       }
   #;

しかし、4 通目は [ML:2] とカウントしてほしいなら、
いわゆる記事番号とは別にカウントするしかありません。
例えば別の sequence ファイルをつくってカウントをしていきます。

   $SMTP_OPEN_HOOK = q`
       undef $SUBJECT_FREE_FORM;
       if ($Envelope{'h:subject:'}  =~ /^\s*Re:/i) {
           $Envelope{'h:Subject:'} = $Envelope{'h:subject:'};
       } else {
           $SEQ_SUBJ_FILE = "$DIR/seqsubj";
           &Touch($SEQ_SUBJ_FILE) unless -f $SEQ_SUBJ_FILE;
           $IDSUBJ = &GetFirstLineFromFile($SEQ_SUBJ_FILE);
           $IDSUBJ++;
           &Write2($IDSUBJ, $SEQ_SUBJ_FILE);
           #&Log("IDSUBJ=[$IDSUBJ]");
           $Envelope{'h:Subject:'} =~ s/^\s+//;
           $Envelope{'h:Subject:'} = "[$BRACKET:$IDSUBJ] $Envelope{'h:Subject:'}";
       }
   `;

注: この例でも動きますが、エラーチェックは不十分といえます。



II レンタルサーバというかISPのサービスというか…



III examples


[PREVIOUS CHAPTER]
 [NEXT CHAPTER]