---
name: "dist"
section: "1mh"
platform: "linux"
package: "nmh"
version: "1.8-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dist/1mh"
---

# dist(1mh)

distribute an nmh message to additional addresses

## NAME

dist - distribute an nmh message to additional addresses

## SYNOPSIS

**dist** \[**-help**\] \[**-version**\] \[*+folder*\] \[*msg*\] \[**-form** *formfile*\] \[**-annotate** \| **-noannotate**\] \[**-inplace** \| **-noinplace**\] \[**-draftfolder** *+folder*\] \[**-draftmessage** *msg*\] \[**-nodraftfolder**\] \[**-editor** *editor*\] \[**-noedit**\] \[**-width** *columns*\] \[**-from** *address*\] \[**-to** *address*\] \[**-cc** *address*\] \[**-fcc** *+folder*\] \[**-whatnowproc** *program*\] \[**-nowhatnowproc**\] \[**-atfile**\] \[**-noatfile**\]

## DESCRIPTION

**dist** is similar to **forw**. It prepares the specified message for redistribution to addresses that (presumably) are not on the original address list.

The default message form contains the following elements:

```
Resent-From: {from switch} or <Local-Mailbox> or <username@hostname>
Resent-To: {to switch} or blank
Resent-cc: {cc switch} or blank
Resent-fcc: {fcc switch} or blank
```

If a file named “*distcomps*” exists in the user's nmh directory, it will be used instead of this default form.  You may specify an alternate forms file with the switch **-form** *formfile*. Forms are processed via the **nmh** template system; see [*mh-format*(5)](/mh-format/5.md) for details.  Components from the redistributed message are available as standard component escapes in the forms file.

In addition to the standard [*mh-format*(5)](/mh-format/5.md) escapes, the following *component* escapes are also supported:

```
Escape	Returns	Description
fcc	string	Any folders specified with `-fcc folder'
nmh-from	string	Addresses specified with `-from address'
nmh-to	string	Addresses specified with `-to address'
nmh-cc	string	Addresses specified with `-cc address'
```

See [*forw*(1)](/forw/1.md) for descriptions of the **-from**, **-to**, **-cc**, and **-fcc** switches.

If the draft already exists, **dist** will ask you as to the disposition of the draft.  A reply of **quit** will abort **dist**, leaving the draft intact; **replace** will replace the existing draft with a blank skeleton; and **list** will display the draft.

Only those addresses in “*Resent-To:*”, “*Resent-cc:*”, and “*Resent-Bcc:*” will be sent.  Also, a “*Resent-Fcc: folder*” will be honored (see [*send*(1)](/send/1.md)). Note that with **dist**, the draft should contain only “*Resent-xxx:*” fields and no body.  The headers and the body of the original message are copied to the draft when the message is sent. Use care in constructing the headers for the redistribution.

Because the draft is minimal, the [*prompter*(1)](/prompter/1.md) editor is quite useful with **dist**.

If the **-annotate** switch is given, the  message being distributed will be annotated with the lines:

Resent: date\
 Resent: addrs

where each address list contains as many lines as required.  This annotation will be done only if the message is sent directly from **dist**. If the message is not sent immediately from **dist**, “**comp** **-use**” may be used to re-edit and send the constructed message, but the annotations won't take place.  Normally annotations are done in place in order to preserve any links to the message.  You may use the **-noinplace** switch to change this.

See [*comp*(1)](/comp/1.md) for a description of the **-editor** and **-noedit** switches.  Note that while in the editor, with **-atfile** and if the current directory is writable, the message being resent is available through a link named “@” (assuming the default *whatnowproc*). In addition, the actual pathname of the message is stored in the environment variable **$editalt**, and the pathname of the folder containing the message is stored in the environment variable **$mhfolder**. The creation of the “@” file is controlled via the **-atfile** and **-noatfile** options.

The **-draftfolder** *+folder* and **-draftmessage** *msg* switches invoke the **nmh** draft folder facility.  This is an advanced (and highly useful) feature.  Consult [*mh-draft*(5)](/mh-draft/5.md) for more information.

Upon exiting from the editor, **dist** will invoke the **whatnow** program.  See [*whatnow*(1)](/whatnow/1.md) for a discussion of available options.  The invocation of this program can be inhibited by using the **-nowhatnowproc** switch.  (In fact, it is the **whatnow** program which starts the initial edit.  Hence, **-nowhatnowproc** will prevent any edit from occurring.)

## FILES

- /etc/nmh/distcomps

  The default message skeleton.

- \<mh-dir\>/distcomps

  The user's message skeleton.

- $HOME/.mh\_profile

  The user's profile.

- \<mh-dir\>/draft

  The draft file.

## PROFILE COMPONENTS

- Path:

  To determine the user's nmh directory.

- Current-Folder:

  To find the default current folder.

- Draft-Folder:

  To specify the default draftfolder.

- Editor:

  To override the default editor.

- fileproc:

  Program to refile the message.

- whatnowproc:

  Program to ask the “What now?” questions.

## SEE ALSO

[*comp*(1)](/comp/1.md), [*forw*(1)](/forw/1.md), [*mh-draft*(5)](/mh-draft/5.md), [*prompter*(1)](/prompter/1.md), [*repl*(1)](/repl/1.md), [*send*(1)](/send/1.md), [*whatnow*(1)](/whatnow/1.md)

## DEFAULTS

- \+folder

  The current folder.

- msg

  The current message.

- \-noannotate

  - \-nodraftfolder

  - \-inplace

  - \-noatfile

  ## CONTEXT

If a folder is given, it will become the current folder.  The message distributed will become the current message.

## HISTORY

**dist** originally used headers of the form “*Distribute-xxx:*” instead of “*Resent-xxx:*”. In order to conform with the ARPA Internet standard, RFC 822, the “*Resent-xxx:*” form is now used. **dist** will recognize “*Distribute-xxx:*” type headers and automatically convert them to “*Resent-xxx:*”.

## BUGS

**dist** does not rigorously check the message being distributed for adherence to the transport standard, but **post** called by **send** does.  The **post** program will balk (and rightly so) at poorly formatted messages, and **dist** won't correct things for you.

If *whatnowproc* is **whatnow**, then **comp** uses a built-in **whatnow**, it does not actually run the **whatnow** program. Hence, if you define your own *whatnowproc*, don't call it **whatnow** since **comp** won't run it.
