home *** CD-ROM | disk | FTP | other *** search
-
- ΓòÉΓòÉΓòÉ 1. PMMAIL Offline Folder Archive and Maintenance Utility (ALPHA) ΓòÉΓòÉΓòÉ
-
- This program is for the 'offline' maintenance of PMMAIL folders, meaning that
- PMMAIL should not be running when it is invoked. It is designed for
- user-programmers; i.e., not for the GUI-bred. The program is directed almost
- entirely from a control file.
-
- The program allows the user to specify selection criteria for mail messages
- using the fields maintained by PMMAIL in its index files. These criteria are
- assigned Reserved Names by POFAMU such as From_name, From_addr and are used to
- form boolean expressions. These expressions are assigned user identifiers
- called Spec-names. These Spec-names are used to assign specified actions to
- selected groups of messages.
-
-
- ΓòÉΓòÉΓòÉ 2. Installation ΓòÉΓòÉΓòÉ
-
- This isn't a GUI program, so I haven't considered building a desktop object for
- it, as part of installation. Just copy POFAMU.EXE to any directory in your
- PATH statement. You might want to copy a program template to the desktop and
- build an object that references your 'daily' control file in the Parameters
- field.
-
- Using any ASCII text editor, edit your control file and place it in the working
- directory referenced by the new program object.
-
- You might want to add the invocation to your 'chron' or 'alarm clock' program
- if you are running round the clock.
-
- INFO-ZIP and UNZIP are required for operation of the Archive function.
-
-
- ΓòÉΓòÉΓòÉ 3. Control File ΓòÉΓòÉΓòÉ
-
- Using the configuration and rules information in the control file specified in
- the invocation argument, manipulate the PMMail folders therein described.
-
-
- ΓòÉΓòÉΓòÉ 3.1. Keywords ΓòÉΓòÉΓòÉ
-
- Control file statements have the form of keyword = value, one per line. The
- operands of these statements are case insensitive, treated as upper-case, when
- not within a quoted string.
-
- Order IS important, since the Basedir entry is required prior to any Account or
- Folder statements. Whitespace is the only delimiter for tokens within these
- statements. Tabs and blanks constitute (normal) whitespace.
-
- Only interlinear (# in 1st char) comments are allowed.
-
- Possible statement keywords:
-
- Mode
- CheckOut, Run, or Force, defaults to CheckOut. CheckOut allows the
- user to test his/her control file prior to use.
-
- Logmode
- Audit or Silent or Warn or Debug - how verbose the output, defaults
- to 'Audit'.
-
- Base
- like e:\southsde\pmmail - your root PMMail directory; This is a
- required parameter. The directory where pmmail.exe is stored.
-
- specname
- boolex << relop '{' boolex > relop boolex '}' > specnames
-
- Account
- "Internal Account-Name". Begin processing the specified account. All
- following specifications until the next Account keyword will apply to
- this account.
-
- Folder
- "Internal Folder-Name" Nested folders are designated via multiple
- strings; i.e. "Friends" "Joe". All statements following this one
- apply to this folder. These statements will all be of the form:
- 'action' = specification-name-list
-
-
- ΓòÉΓòÉΓòÉ 3.2. Selection Criteria ΓòÉΓòÉΓòÉ
-
- The boolean expressions used by POFAMU are of the form:
-
- Reserved Word Operator Constant
-
- The Reserved words are:
-
- Subject
- The subject line as stored in the FOLDER.BAG file. If the specified
- constant string is a case-insensitive substring of this Subject line
- than it is considered equal ('=').
-
- From_name
- The name (if any) in the From: line of the header. If the specified
- constant string is a case-insensitive substring of this From_name,
- than it is considered equal ('=').
-
- From_addr
- The email address (if any) in the From: line of the header. If the
- specified constant string is a case-insensitive substring of this
- From_addr, than it is considered equal ('=').
-
- To_addr
- The email address (if any) in the To: line of the header. If the
- specified constant string is a case-insensitive substring of this
- To_addr, than it is considered equal ('=').
-
- To_name
- The email address (if any) in the To: line of the header. If the
- specified constant string is a case-insensitive substring of this
- To_name, than it is considered equal ('=').
-
- Status
- The constants for comparison must be Read, Unread, Replied, or Sent.
- This is the current FOLDER.BAG state of the message.
-
- Size
- The constants for size comparison must be numbers of bytes, without a
- 'k' or 'm' suffix.
-
- Age
- This value means the age in hours of the message. The difference
- between the current date/time and date/time stored in FOLDER.BAG. The
- suffix 'd' or 'h' is mandatory.
-
-
- ΓòÉΓòÉΓòÉ 3.3. Action Statements ΓòÉΓòÉΓòÉ
-
- Actions are of the form:
-
- action-name = specname <..specname> <Account-specifier>
-
- The built-in actions are Move, Delete, Archive, and Copy.
-
- Archive = specname <..specname>
- Messages meeting the criteria of any of the
- specification names are ZIP-moved into the file
- POFAMU.ZIP in the affected folder directory. The
- message file is deleted. A file POFAMU.BAG within the
- POFAMU.ZIP file is in standard PMMAIL index format.
-
- Delete = specname <..specname>
- Messages meeting the criteria of ANY of the
- specification names in the list
-
- Move = specname account-name
- Messages meeting the criteria of the single
- specification are moved to the specified account and
- folder. If account-name is given as '=', then the
- current account is assumed.
-
- Copy = specname account-name
- Copy is not implemented currently.
-
- It is highly recommended that you test any new or modified control files with
- Mode = CheckOut before using Mode = Run. If fact, you might want to leave the
- Mode command out of your control file altogether. When you truly want to
- commit the changes, use Run as the second command line argument.
-
-
- ΓòÉΓòÉΓòÉ 3.4. Syntax ΓòÉΓòÉΓòÉ
-
- account-name ::: PMMail internal account name | '=' (for current account)
-
- folder-name ::: PMMail internal folder name
-
- time_val ::: number || tqal
-
- tqal ::: 'd' or 'h' days or hours
-
- boolex ::: key_id operator comparator
-
- operator ::: '=' or '>' or '<' or '<>'
-
- comparator ::: "string" or number
-
- relop ::: 'AND' or 'OR'
-
- key_id ::: Age or From_addr or From_name or Status or Size or To_addr or
- To_name or Subject
-
- 'OR' logic has not yet been tested. So don't expect it to work.
-
- ( For Status, the 'number' may be 'Unread', 'Read', 'Replied' , 'Sent', or
- 0, 1, 2, or 3 )
-
-
- ΓòÉΓòÉΓòÉ 4. Command Line ΓòÉΓòÉΓòÉ
-
- Invoke the program like so%colon.
-
- pofamu control-file-path <runmode>
-
- Control-file-path is mandatory. Runmode is optional and overrides the value
- in the control file.
-
-
- ΓòÉΓòÉΓòÉ 5. Sample Control File ΓòÉΓòÉΓòÉ
-
- # initial test configuration file
- #
- # Base directory for PMMAIL folders
- # must specify where to start looking
- Base = e
- Hale_3day = { From_name = "Haley Landers" } AND { Age > 3d }
- Golden_3day = { From_name = "Dave Goldenbugle" } AND { Age > 3d }
- Rick_3day = { From_name = "Rick G. Shepherd" } AND { Age > 3d }
- THE_author = { From_name = "Mark Hessling" }
- Humor = From_name = "west@ib"
- Weekold = Age > 7d
- TwoWeekOld = Age > 14d
- MonthOld = Age > 30d
-
- # We have two accounts that are actively in use
- Account = "Dave's Mail"
-
- Folder = "Trash"
- Move = Bobs_3day = "Friends" "Bob"
- Move = Paul_3day = "Friends" "Bash"
- Move = Hale_3day = "Friends" "Hale"
- Move = Golden_3day = "Friends" "Goldenbugle"
- Move = Rick_3day = "Friends" "Rick"
- Move = THE_author = "Programming" "Hessling"
- Move = Humor = "Humor"
- Delete = TwoWeekOld
-
- Folder = "Sent Mail"
- Delete = MonthOld
-
- Folder = "Programming" "MVS-OE"
- Archive = Weekold
-
- Account = "Trish's Mail"
-
- Folder = "Trash"
- Delete = TwoWeekOld
-
-
- ΓòÉΓòÉΓòÉ 6. Problem Diagnosis ΓòÉΓòÉΓòÉ
-
- Beginning with version 1.9, if an exception occurs during operation, POFAMU
- will output a short message and produce a file M2DUMP.000 in the 'Base'
- directory for PMMAIL. If the reason for the exception isn't apparent, zip this
- file and PMMAIL/Attach it to a message sent to the author.
-
-
- ΓòÉΓòÉΓòÉ 7. Author ΓòÉΓòÉΓòÉ
-
- This code is the work of :
-
-
- Dave Serls
-
- Internet: dave@dashs.denver.co.us
-
-