PMDF User's Guide
OpenVMS Edition


Previous Next Contents Index

1.1.9 Header Lines in Messages

PMDF uses two sources of information to construct message headers for messages it receives from VMS MAIL.6 The first is VMS MAIL itself, which provides a To:, From:, Cc:, and Subject: line, and a list of addressees. The second source of information is logical names which you can define. The logical names shown in the second column of Table 1-2 can be defined to create the associated header lines. You do not need to define all of the logicals shown; only those in which you are interested. These logical names only work when PMDF is running on the system from which you send your mail. They will not, for instance, have any effect if your send mail to PMDF from remote DECnet node as described in Section 1.1.3.

For instance, to add an "Organization: Spacely Sprockets, Inc." header line to mail messages which you send, define the PMDF_ORGANIZATION logical with the command


$ DEFINE PMDF_ORGANIZATION "Spacely Sprockets, Inc."

1.1.9.1 Date: Header Lines

The Date: line is filled in with the current date and time obtained from the operating system, along with the time zone specified by the system logical name PMDF_TIMEZONE. 7 The date and time format used conforms to RFC 822 guidelines.

1.1.9.2 Priority: Header Lines

The contents of the Priority: header are used by PMDF to determine the type of processing to perform on the message, and when to perform it. The value of the Priority: header should be one of: "third-class", "second-class", "non-urgent", "normal", and "urgent". The last three of these values are standardized in RFC 1148; the first two are used only by PMDF.

PMDF processes messages in order according to their priority. That is, messages marked urgent will be processed before messages marked non-urgent, and so on. In addition PMDF can be configured to process messages of a given priority or greater immediately and defer processing of lower priority messages until a periodic job runs. This behavior is controllable by the system manager.

Messages that are not explicitly marked with their priority are considered to be of normal priority.

Table 1-2 Header Lines Controlled Via Logical Name Definitions
Header line Logical name Notes
Comments: PMDF_COMMENTS 1, 6
Errors-to: PMDF_ERRORS_TO 3, 4, 6, 9
Importance: PMDF_IMPORTANCE 2, 6, 9
Keywords: PMDF_KEYWORDS 1, 6
Organization: PMDF_ORGANIZATION 5, 6, 9
Priority: PMDF_PRIORITY 2, 6, 7, 9
References: PMDF_REFERENCES 1, 6
Reply-to: PMDF_REPLY_TO 5, 6
Sensitivity: PMDF_SENSITIVITY 2, 6, 9
Warnings-to: PMDF_WARNINGS_TO 3, 4, 6, 9
X-FAX-defaults: PMDF_X_FAX_DEFAULTS 6, 8, 9
X-PS-qualifiers: PMDF_X_PS_QUALIFIERS 6, 8, 9


Notes
  1. Multiple instances of this header line will be generated if there are carriage returns, line feeds, or carriage return line feed pairs in the translation of the associated logical. Each section of the translation that is delimited by these characters will be placed on a separate header line. Note that you can usually define such logicals only with a DCL command procedure or a program.
  2. The Importance:, Priority:, and Sensitivity: header lines are defined in RFC 1148 and are mappings of the X.400 importance, priority, and sensitivity indication attributes into RFC 822. In order to retain compatibility with RFC 1148, PMDF _IMPORTANCE should be set only to " low " , " normal " , or " high " ; PMDF _PRIORITY should be set only to " third-class " , " second-class " , " normal " , " non-urgent " , or " urgent " ; and PMDF _SENSITIVITY should be set only to " personal " , " private " , or " company-confidential " .
  3. The special address " < > " is interpreted as a request that no error messages (Errors-to: < >) or warning messages (Warnings-to: < >) be returned. This is useful for postings to large mailing lists that do not redirect error messages to their own private address. Note that not all mailers support this interpretation of " < > " .
  4. PMDF not only generates Errors-to: and Warnings-to: header lines, it also uses them when returning warning and error messages. When returning an error [warning ] message an Errors-to: [Warnings-to: ] address is used as the return address of choice. When returning an error message, if the Errors-to: header line is not present or is illegal, the envelope From: address is used instead. When returning a warning, if the Warnings-to: header line is not present or is illegal, then the Errors-to: is used. If that is not present, then the envelope From: address is used.
  5. The setting of this logical has no effect on messages being forwarded into and directly out of VMS MAIL.
  6. See also Section 1.1.9.3 .
  7. See Section 1.1.9.2 .
  8. See Section 1.4.4 and Section 1.4.5 .
  9. Not a standard RFC 822 header line.

1.1.9.3 Additional Header Line Prompts in VMS MAIL

You can have VMS MAIL prompt you for the contents of any of the header lines specified in Table 1-2. If any of the logical names of that table are defined and translate to a string beginning with and ending with a question mark, ?, PMDF will use the string as a prompt. For each message which is addressed to PMDF, you will be prompted with this string. Your response to the prompt is then used for the corresponding header line in the message. For instance, if you define PMDF_PRIORITY and PMDF_SENSITIVITY as


$ DEFINE PMDF_PRIORITY     "?Priority: ?"
$ DEFINE PMDF_SENSITIVITY  "?Sensitivity: ?"
then the following prompts will appear when you send a message:


$ MAIL
MAIL> SEND/CC
To:     in%"bob@example.com"
Subj:   Test message
Enter your message below. Press CTRL/Z when complete, or CTRL/C to quit: 
Test message
[CTRL/Z]
Priority: non-urgent (1)
Sensitivity: Private (2)
MAIL> 
 
Note that from VMS MAIL, the prompts (1) and (2) appear after the message has been entered. This is a side effect of the way in which VMS MAIL interoperates with PMDF and other foreign protocol interfaces. From PMDF MAIL these prompts will appear before you enter the message.

Prompting is possible only in regular command-oriented VMS MAIL and PMDF MAIL; it cannot be done from DECwindows MAIL, Gold-Mail, or Pathworks MAIL agents. PMDF checks to make sure that prompting is possible and will ignore any requests for prompts in environments which cannot support such operations.

1.1.9.4 User Defined Header Lines

Users might want to add additional headers to outgoing messages from VMS MAIL that don't have specific logical names associated with them. PMDF provides a general mechanism that can be used to add arbitrary sets of headers to outgoing messages.

PMDF translates the logical PMDF_HEADER. If this logical is defined, the result is used as one line of header text and PMDF proceeds to translate the logicals PMDF_HEADER_1, PMDF_HEADER_2, PMDF_HEADER_3, and so on. Each logical that translates provides another line of header text. Translation stops with the first logical name in this sequence that not defined. Note that these logicals differ from other logicals that define headers in PMDF in that the header tag as well as the header body must be provided by the logical; i.e., the translation value of each logical provides both the header name and the contents of the header line for that header.

The lines of text that result from this process are essentially treated as a set of extra message headers. PMDF removes certain headers from this set that users are not allowed to add to messages: From:, Sender:, Resent-From:, Resent-Sender:, and Date:. The remaining headers are prepended to the set of headers attached to the message by other mechanisms.

For example, the logical definitions


$ DEFINE PMDF_HEADER "X-Mailer: PMDF V''f$trnlnm(""PMDF_VERSION"")'"
$ DEFINE PMDF_HEADER_1 "X-Telephone: +1 714 555 1212"
would result in the two header lines


X-Mailer: PMDF V6.6 
X-Telephone: +1 714 555 1212 
being added to mail messages which you send.

Standardized headers specified using this mechanism that contain addresses are rewritten using the regular PMDF rewrite rules; these headers are not exempt from rewrite processing.

Note

6 A third source is PMDF itself. PMDF constructs some header lines itself such as Date:.

7 If PMDF_TIMEZONE is not defined, PMDF looks first for SYS$LOCALTIME, then for SYS$TIMEZONE_DIFFERENTIAL and SYS$TIMEZONE_NAME.


Previous Next Contents Index