IM::Scan(3) scan listing from mail/news message


use IM::Scan;
&set_scan_form($scan_form, $width, $use_jis);
%Head = &get_header($mail_file);


The IM::Scan module handles scan format and petnames format for mail/news message.

This modules is provided by IM (Internet Message).


 $HOME/.im/Config       the user profile


 Component     Explanation                     Example
 MailDir:      your mail directory             Mail
 Width:        one line width                  80
 JisSafe:      safely substr for ISO-2022-JP   on
 Form:         scan format                     %+5n %m%d %8f %-30S %b
 PetnameFile:  nickname file                    ~/.im/Petname
 Address:      your mail addresses             [email protected], [email protected]
 AddrRegex:    regexp of your addresses        ^kazu@.*$
               if necessary


'%{width}{header-type}' format is available. You can define any header-type as you want. Default valid header-types are

    %n    message number
    %d    raw Date: field
    %f    MIME decoded From: field
    %t    MIME decoded To: filed
    %g    raw Newsgroups: field
    %a    friendly From: field
    %A    If this message is originated by yourself, friendly To: 
          or raw Newsgroups: is displayed in 'To:xxx' or 'Ng:xxx' 
          format, respectively. Otherwise, friendly From: field is 
    %P    Similar to %A, but display raw address of mail sender
          instead of friendly From: field, just like mh-e.            
    %i    indent to display thread
    %s    MIME decoded Subject: field
    %S    indented MIME decoded Subject (same as %i+%s)
    %b    a part of body extracted with heuristic
    %m    Multipart type
              'S'igned, 'E'ncrypt, 'M'ultipart, 'P'artial or none
    %p    mark '*' if the message is destined to you
    %D    mark 'D' if the message is duplicated
    %M    %p+%D
    %F    folder path
    %K    file block size (1024 bytes/block)
    %y    year
    %c    month (digit)
    %C    month (string)
    %e    mday
    %h    hour
    %E    min
    %G    sec

{width} is a integer with/without '-' sign. if a '-' sign exists, content of a header-type will be displaied with left adjustment. If the integer have leading '0', the field will be padded with leading '0's.

To improve processing speed, needless process on JIS character should be avoided. Even if 'JisSafe' is on, only %f, %t, %A, %s, %S and %b are processed with 'substr' routine for JIS characters by default. If you want to process other header-types with JIS version of 'substr', specify '!' just after '%' like: %!-8S.

ScanForm ``%+5n %m%d %-14A %-18S %b'' works as same as IM default scaning.


Following format is valid in petnames file. A line beginning with '#' is ignored.

    # This is comments
    [email protected]      "Mr.Kazu"
    [email protected]       "Nomsun"


IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details.