[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]