exmh FAQ

# exmh Frequently Asked Questions

[ exmh | software | intro | tutorial | guide | reference ]

1
  How do I configure exmh to use a POP mail server?
  1b
    Does exmh speak IMAP (NO)
2
  I'm having problems with non-US ASCII characters
  2a
    How do I display ISO-8859 fonts so that my special characters show up?
  2b
    How do I insert special 8-bit characters (latin-1)
  2c
    How do I get RFC-2047 encoded headers such as the "From:" address of messages to display correctly in the folder TOC?
3
  I can't get background incorporate to work. What am I doing wrong?
4
  I'm having problems with X authorization
  4a
    How do I get Tk send to work?
  4b
    How do I start my X server so it does Xauthority right?
  4c
    How do I just disable the xauth stuff in exmh?
  4d
    rsh commands don't work between home and work, because the accounts are different on the two machines.
5
  Where do I find Faces and Metamail packages?
6
  How do you get an X-Face: line into your outgoing mail messages?
  6b
    How do you display an X-Face: header line?
7
  Can I use EXMH as a news reader?
8
  How do I change those default wheat-colors for the widgets in EXMH?
9
  What's the difference between presort and multidrop inc-styles?
10
  How do I fix the "exmh-bg lost UI {process XXXX}" message?
  10b
    What does "exmh-bg cannot rendez-vous with UI - exiting" mean?
11
  How come messages are not really removed when I delete them?
12
  Why doesn't the flag go up when there is new mail in the spool file?
13
  Why isn't there a Reply button, but only a reply menu?
14
  Are there newsgroups or mailing lists for discussion of exmh?
15
  How do I set up the templates for mail messages?
  15a
    Can I have templates associated with folders?
16
  How do I get a copy of mail I sent saved into a folder (easily).
17
  What is a good alternate Print command to get good formatting?
18
  How do I change the folder table of contents listing?
  18a
    Remove the leading words of the message
  18b
    Handle message numbers > 999
  18c
    Add annotations to messages that have been replied to.
  18d
    Colorize message headers.
19
  How do signatures work?
20
  How do I set up sendmail and my PPP dial-up account?
21
  How do I make exmh look good with WindowMaker or GNUstep?
22
  How do I make exmh want to display messages as plain-text rather than HTML-formatted?
23
  How can I stop my own address from appearing on the cc list when I reply to messages?
24
  How do I fix errors from the scan program?

### 1. How do I configure exmh to use a POP mail server?

First you must make sure that your MH (or nmh) is compiled with support for POP. You can check by running "inc -help" and check that it supports the -host command line argument. You set the name of the POP3 mail server host under Incorporate Mail or The Top Ten preferences. You can also set up a ~/.netrc file that lists your POP3 servers and user accounts. This option requires the Expect program so that exmh can automatically manage your POP3 password.

#### I don't have Expect; can I still use a POP mail server?

If you do not have expect, you must put your password into your .netrc file and leave your POP3 mail host preferences setting empty. The .netrc file contains lines in the following format:
machine mail.wherever.com login yourlogin password "a secret"

#### 1b. Can I use an IMAP server?

Exmh does not directly support IMAP. However, you can use mail clients like fetchmail to get your mail from an IMAP server. That gets the mail onto your local machine, and then exmh/MH can read it from there.

### 2. I'm having problems with with non-US ASCII characters

### 2a. How do I display ISO-8859 fonts so that my special characters show up?

Put an Xresource specification into your ~/.exmh/exmh-defaults file:

    *Text*font: -*-courier-*-*-*-*-*-*-*-*-*-*-iso8859-*
    *Ftoc*Text*font: -*-courier-*-*-*-*-10-*-*-*-*-*-iso8859-*

### 2b. How do I insert special (8-bit) characters?

There are many Compose key sequences that are defined to let you do this. Your X environment may also specially map some keys. For a list of the Compose key sequences, select the Compose Key menu entry under Bindings. Press the Compose key and then the two characters in the left list in order to get the special character on the right hand side. You can redefine what the Compose key is mapped to in the Simple Edit Bindings... dialog.

### 2c. How do I get RFC-2047 encoded headers such as the "From:" address of messages to display correctly in the folder TOC?

The folder table of contents is generated by the MH/nmh `scan` program. Only the nmh `scan` program supports decoding RFC-2047 headers. The nmh package is highly preferred over the older MH due to security holes in MH.

NOTE: This answer depends on your UNIX system having a complete and correct implementation of "locales".

You have to do several things right for everything to work:

1. Use `decode` in the appropriate places of relevant format or filter files. Here's an example scan.form (this is the nmh default scan.form):

       %4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\
       %02(mon{date})/%02(mday{date})%<{date} %|*%>\
       %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\
       %<(zero)%17(decode(friendly{from}))%>  \
       %(decode{subject})%<{body}<<%{body}>>%>

2. Set the environment variable `MM_CHARSET=iso-8859-1`
3. Set the environment variable `LC_CTYPE` appropriately. The easiest way is just to set the environment variable `LANG`. Setting `LANG=en_US` works on Red Hat Linux 6.x but may depend on your Unix variant. Try running the command `locale -a` to see what locales are available on your system. Use the `locale` command to verify the settings.
4. Make sure both these are exported to the environment exmh runs in, e.g. by putting them in your .profile. You may also want to set `LESSCHARSET=latin1` if you use nmh from the command-line with less(1) as your pager.
5. Restart exmh and do a "More->Rescan Folder" to make it refresh its cache (just restarting exmh is not enough).

One final note: You may still see headers that appear to be correctly encoded but are not decoded. RFC 2047 specifies that the encoded text may not contain unencoded spaces. Spaces must be encoded, either as "=20" or as an underscore. The exmh message display window will accept headers with unencoded spaces, but the nmh scan program will not. Such incorrectly encoded headers will be decoded in the message window but will not be decoded in the folder TOC.

### 3. I can't get background incorporate to work. What am I doing wrong?

The most likely cause is that the TK send facility does not work for you because of Xauthority issues. See FAQ 4a & 4b. If you cannot get send working, you have two options. First, disable the background process so that all periodic activity is done in the front-end. Do this via the preferences entry for Background Processing.

Another cause that might disable inc completely is lack of the MAILDROP environment variable. This should be set to the name of the spool file that contains incoming mail (unless you are using POP). The latest Exmh will warn you about this and try to choose a default value, but to be safe you should set this up properly.

### 4a. How do I get Tk send to work?

Tk "send" lets two TCL interpreters issue commands to each other, and it uses the X server for communication. Beginning with TK 3.3, this also honors the Xauthority protocol, unless you compile TK with -DTK_NO_SECURITY. You can test this by running the following command:

`echo 'send exmh {Exmh_Status "Hello, world!"}; exit' | wish`

If this fails you need to recompile or learn how to start your X server so that it does Xauthority right. Note that even if you set up Xauthority right, you need to make sure the old-fashioned xhost list is empty. Do this:

`xhost -`

In addition, if there are any hosts explicitly lists, you must explicitly remove them:

`xhost -localhost`

There is a Background Processing preferences setting to clear out your xhost list automatically. You need to restart exmh for this setting to take effect.

### 4b. How do I start my X server so it does Xauthority right?

The general picture of what's going on is this:

1. Some program generates a magic cookie (arbitrary string) and writes this to a file.
2. The name of this file (often ~/.Xauthority) is passed to the X server
3. The X server writes an entry for the DISPLAY into your ~/.Xauthority file.
4. Xlib reads ~/.Xauthority when you create a window, and passes the cookie value back to the X server.

The specific details vary from server to server. For SunOS and openwin, you should just be able to start up with:

`openwin -auth magic-cookie`

Another person says,

The Xauthority stuff seems to work now. All I did was declare and export XAUTHORITY from my .profile. I hadn't done it before since the value ($HOME/.Xauthority) is supposed to be the default. We're using XDM. In more detail, here is what happens under the covers...

        if [ ! \( -d $HOME -a -w $HOME \) ]; then
          echo "Warning: Can't write X authority file" 1>&2 ;
          auth_args=""
        else
          authfname=$HOME/.xnews.`uname -n`$DISPLAY
          ${OPENWINHOME}/lib/mkcookie $authfname -auth magic-cookie
          auth_args="-auth $authfname"
        fi ;
        ${OPENWINHOME}/bin/xnews $auth_args $server_args $xnews_config_args ;;

There is a more lengthy example given in the misc/Xauthority file that comes with the exmh distribution.

### 4c. How do I just disable the xauth stuff in exmh?

- You can't. 8-) That's because it's in Tk, not exmh.
- It's there because Tk requires xauth for its interprocess communication. Otherwise, there would be a *serious* security hole, allowing any host to run arbitrary scripts in any Tk window it can find. (ANY host -- not just those listed in xhost -- ever hear of IP packet spoofing?)
- If you're gutsy, tkSend.c allows you to #define TK_NO_SECURITY, which disables the xauth checks and hopes for the best. If you're desperate, rebuilding Tk with this definition might be the thing to do.
- A better solution would be to arrange for resynchronizing the key. Check out:

http://ce-toolkit.crd.ge.com/tkxauth/

for how to set up xauth on your server. When you log into work, just set up a local script that does:

xauth nlist $DISPLAY | rsh host.at.work.com xauth nmerge -

to resynchronize the session key.

### 4d. rsh commands don't work between home and work, because the accounts are different on the two machines.

You can set up rsh to work correctly. In your .rhosts at work, put a line like:

host.at.home.net homeuser

and change the command above to read:

    xauth nlist $DISPLAY | rsh host.at.work.com -l workuser xauth nmerge -

I have had mismatched accounts on lots of hosts, and nary a problem keeping the session keys in sync.

A better answer, however, is to use ssh (the secure shell) instead of rsh. Ssh is a drop-in replacement for rsh but with security features including encryption and authentication. It also tunnels X traffic through the encrypted link and automatically sets your DISPLAY variable on the remote side.

### 5. Where do I find Faces and Metamail packages?

There are pointers to these packages in the software page.

### 6. How do you get an X-Face: line into your outgoing mail messages?

The compface program that is part of the faces package will generate the X-Face hex string for you. Check its man page for details. If you have a 48x48 X bitmap image in X bitmap .xbm format, then you can convert that into an ikon format using some programs from the pbmplus package. The pipeline looks like

    xbmsize48 | xbm2ikon | compface

If you put an X-Face header in your replcomps file (see 15) then you need to double any % and \ in the X-Face string. For example,

    abc%def\efg

needs to be written as

    abc%%def\\xyz

in the X-Face header of your replcomps files.

### 6b. How do you display an X-Face: header line?

Under the Faces preferences, set the X-Face pipeline to be similar to:

    uncompface | ikon2xbm

(You might need absolute pathnames if these programs are not otherwise on your PATH). uncompface comes with the faces package. ikon2xbm comes with exmh as misc/ikon2xbm.c Just compile it with

    cc -o ikon2xbm ikon2xbm.c

Note, this is slower than I'd like, plus the results are not saved anywhere. The intended use of the X-Face header was that the mail agent would update the facesaver database in the background using it.

### 7. Can I use EXMH as a news reader?

There are two different approaches that may be used to read news with exmh. The older technique requires that the news hiearchy be available locally or via NFS. Here's the writeup on that:

> To get started, just make a symbolic link from your ~/Mail directory into the news spool file system. This requires access (e.g., NFS) to the news spool file system, of course. You can do it for a single newsgroup, i.e. clari.feature.dilbert. My symlink looks like:

>         Mail/dilbert -> /net/news/news-1/news/spool/clari/feature/dilbert

> Or, you can link into the interior of the news hierarchy. You might run into a problem from the MH folders command that limits it to about 300 folders. Change the NFOLDERS constant in MH src/h/mh.h from 300 to 30,000 and you shouldn't have any more trouble ;-)

The other technique requires that news be available via an NNTP server. This technique will presort articles into your folders and is described elsewhere in the documentation.

### 8. How do I change those default wheat-colors for the widgets in EXMH?

(See also exmh.COLORS for more color schemes...) Here is a set of Xresources that I use to get a grey-family for my TK-based applications. You can put this into your ~/.exmh/exmh-defaults, or into your ~/.Xdefaults. This works OK on a monochrome screen, although buttons do not highlight when you pass the mouse over them.

    *activeBackground:			#efefef
    *activeForeground:			black
    *selector:				black
    *background:				#dfdfdf
    *foreground:				black
    *selectBackground:			#bfdfff
    *Scale.activeForeground:		#efefef
    *Scale.sliderForeground:		#dfdfdf
    *Scrollbar.foreground:			#dfdfdf
    *Scrollbar.activeForeground:		#efefef
    *Button.disabledForeground:		#7f7f7f
    *Checkbutton.disabledForeground:	#7f7f7f
    *Radiobutton.disabledForeground:	#7f7f7f
    *Menu.disabledForeground:		#7f7f7f

### 9. What's the difference between presort and multidrop inc-styles?

The main difference between presort and multidrop is: with presort, you don't need a ~/.forward that pipes your messages to slocal because exmh will run slocal for you. The second difference is that the presort scheme assumes that messages are completely routed into folders, either with the + syntax (slocal patch required) or by piping messages through rcvstore in the .maildelivery specification. The multidrop scheme assumes you append messages to dropbox files with the '&GT;' or 'file' command in your .maildelivery file. Thus your options are:

- Use slocal in your .forward, pipe your messages to rcvstore in .maildelivery, and have exmh do background flist updates.
- Use slocal in your .forward, append messages to files in .maildelivery, specify files to folders mapping in .xmhcheck, and have exmh do background multidrop.
- Empty .forward, pipe your messages to rcvstore in your .maildelivery, and have exmh do background presort.
- Note that the following DOES NOT WORK empty .forward, append messages to files in .maildelivery, specify file to folder mapping in .xmhcheck, and have exmh do background presort. WON'T WORK

### 10. How do I fix the "exmh-bg lost UI {process XXXX}" message?

First - see #4a about Tk send and Xauthority. is most like a problem with the Tk send command. Second - if Tk send works for you, then perhaps it is a problem with the ps command setting for exmh(psCmd). This is set up when exmh is installed and is used to query the existence of other processes. On Berkeley-style systems you can just do

    /bin/ps $pid

While on SysV-style systems you need the -p flag

    /bin/ps -p $pid

### 10b. What does "exmh-bg cannot rendez-vous with UI - exiting" mean?

This is a related problem. Tk send is not working so the background process cannot hook up with the user interface. See #4a

### 11. How come messages are not really removed when I delete them?

By default, MH only renames a message when you delete it. It is either named ,N or #N, depending on how your system is configured. You can take a few different approaches to cleaning up these files.

1. Set up a cron job to periodically remove them. I use this entry:

       53 5 * * * find /home/cwg/Mail -name ',*' -exec rm {} \;

2. Remove them by hand, or add a Purge menu entry to do it.
3. In your ~/.mh_profile, add a line like:

             rmmproc: /bin/rm

   This causes the MH rmm command to invoke /bin/rm to nuke the message

### 12. Why doesn't the flag go up when there is new mail in the spool file?

The appearance of the exmh icon relates to the contents of your mail folders, not your spool file. This reflects a bias towards background inc'ing, which periodically transfers (and maybe sorts) mail into your folders. Check out flag.tcl for the details.

### 13. Why isn't there a Reply button, but only a menu?

There are really lots of variations on reply, that's why. You should pick your favorite one and define a personal button for it so that *you* get what *you* want. You can define a repl button by putting these resources into your ~/.exmh/exmh-defaults file

    *Mops.ubuttonlist: myrepl
    *Mops.myrepl.text: Repl
    *Mops.myrepl.command: Msg_Reply {any valid repl arguments here}

See the MH man page on repl for more details. Common flags include

        -cc me -nocc me -cc all -nocc all -filter form

### 14. Are there newsgroups or mailing lists for discussion of exmh?

There are three mailing lists, and an archive. First, and this is important, send subscription requests to the corresponding -request address, not the main lists. Please. The exmh mailing lists are archived at http://www.xray.mpe.mpg.de/mailing-lists/exmh/

exmh-announce
  Subscribe to this to receive announcements about new exmh releases. Send a mail message to exmh-announce-request@redhat.com to be added to or removed from the list. To subscribe (be added to the list) use a subject of "subscribe". Use a subject of "unsubscribe" to be removed from the list.
exmh-users
  Subscribe to this to join a discussion of exmh. This list also gets announcement messages. The exmh-users list is available as a "digest" or non-digest. For digests you will receive one, sometimes large, email per day containing all the posts to the list for that day. Subscribe or unsubscribe by sending a message to exmh-users-request@redhat.com for the non-digest version or to exmh-users-digest-request@redhat.com for the digest version. Use "subscribe" or "unsubscribe" as your subject.
exmh-workers
  Subscribe to this to join a discussion among hackers that are interested in programming new stuff for exmh. Subscribe or unsubscribe by sending a message to exmh-workers-request@redhat.com. Use "subscribe" or "unsubscribe" as your subject.
nmh
  The comp.mail.mh newsgroup has more information about basic MH stuff.

### 15. How do I set up the templates for mail messages?

MH uses four template files depending on the operation. nmh adds a fifth type of template file. Default versions of the files are in the MH or nmh library directory. Copy these defaults into your ~/Mail directory so you can customize them. The files are:

components
  used when you send a new message. Put the headers and any text you want in your message. Remember to leave either a blank line between the headers and the body, or a line of all dashes.
replcomps
  used when you reply to a message. This file is complex because it contains directives that indicate how to fill in the headers based on the content of the mail you are replying to. See the repl man page for details. If you want to put literal values in the headers, you have to double any occurrences of % or \ because these are special characters in the formatting commands. If you want plain text in the body, you have to begin these lines with a colon. Otherwise the lines after the header are discarded. The same rules about separating the headers and the body apply. If you want to add comments to the template, start the line with a semi-colon.

  reply filters - the -filter argument to repl specifies a filter that inserts and formats the body of the message to which you are replying. See the repl man page for details.

replgroupcomps (nmh only)
  used, if available, when replying with the "-group" option. If exmh detects that nmh is in use the -group option will be used for the "Reply all" function. This causes the behavior of "Reply all" to be consistent regardless of the underlying MH or nmh.
forwcomps
  used when forwarding a message. This is more like the components file than the replcomps file.

  forward filters -- these control what headers are retained in the forwarded messages, and how those messages are forwarded.

distcomps
  used when "redistributing" a message. Redistributing is somewhat like forwarding but the original message is sent on intact. This preserves the original sender but does not allow you to add your own comments. The distcomps file should only contain Resent-xxx headers. See `man dist` for more information on distcomps.

        ---------cut here for sample components file-----------
    To:
    Subject:
    Fcc: outbox
    Cc:
    X-Face: "HxE|?EnC9fVMV8f70H83&AMP;{fgLE.|FZ^$&GT;@Q(yb#N,Eh~N]e&AMP;]=&GT;r5~UnRml1:4EglY{9B+
     :'wJq$@c_C!l8@&LT;$t,{YUr4K,QJGHSvS~U]H`&LT;+L*x?eGzSk&GT;XH\W:AK\j?@?c1o&LT;k;j'Ei/UL)!*0
     ILwSR)J\bc)gjz!rrGQ2#i*f:M:ydhK}jp4dWQW?;0{,#iWrCV$4~%e/3)$1/D

    	Brent Welch	Xerox-PARC
        ------------end sample components file-----------------

        ---------cut here for replcomps - compare X-Face-Header differences------
    %(lit)%(formataddr %&LT;{reply-to}%|%&LT;{from}%|%{sender}%&GT;%&GT;)\
    %&LT;(nonnull)%(void(width))%(putaddr To: )\n%&GT;\
    %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
    %&LT;(nonnull)%(void(width))%(putaddr cc: )\n%&GT;\
    %&LT;{subject}Subject: Re: %{subject}\n%&GT;\
    %&LT;{date}In-reply-to: %&LT;(mbox{from})%(mbox{from})%|%(friendly{from})%&GT;\
    's message of \
    %&LT;(nodate{date})%{date}%|%(tws{date})%&GT;.%&LT;{message-id}
    	     %{message-id}%&GT;\n%&GT;\
    X-Face: "HxE|?EnC9fVMV8f70H83&AMP;{fgLE.|FZ^$&GT;@Q(yb#N,Eh~N]e&AMP;]=&GT;r5~UnRml1:4EglY{9B+
     :'wJq$@c_C!l8@&LT;$t,{YUr4K,QJGHSvS~U]H`&LT;+L*x?eGzSk&GT;XH\\W:AK\\j?@?c1o&LT;k;j'Ei/UL)!*0
     ILwSR)J\\bc)gjz!rrGQ2#i*f:M:ydhK}jp4dWQW?;0{,#iWrCV$4~%%e/3)$1/D
    Fcc: outbox\n

        --------------end sample replcomps file----------------

        --------cut here for sample reply filter---------------
    from:nocomponent,formatfield=\
    "&GT;&GT;&GT;%(friendly{text}) said:"
    body:component="&GT; ",offset=1,overflowoffset=4
    :
    :---------------------------------
    :	Brent Welch	Xerox PARC
        ----------end of sample reply filter-------------------

        ----------cut here for sample forwcomps file-----------
    To:
    Cc:
    Subject:
    Fcc: outbox

        ----------end of forwcomps file------------------------

        ----------cut here for sample forward filter-----------
    width=80,overflowtext=,overflowoffset=10
    leftadjust,compress,compwidth=9
    Date:formatfield="%&LT;(nodate{text})%{text}%|%(tws{text})%&GT;"
    From:
    To:
    cc:
    Subject:
    :
    body:nocomponent,overflowoffset=0,noleftadjust,nocompress
        ----------end of sample forward filter-----------------

### 15a. Can I have templates associated with folders?

To use templates specific to a given folder, simply copy your components and/or replcomps files (see above) into that folder and edit them appropriately. Those files will be used as templates when composing new messages from within the folder or when replying to messages in that folder.

This feature works hierarchically. So for example, if you have several nested folders under Mail/exmh, and you have created the files Mail/exmh/components and Mail/exmh/replcomps, they'll be used (as above) when you're in any of those nested folders.

Folder-specific template files are a feature implemented by exmh; they are not a part of the normal MH/nmh functionality.

### 16. How do I get a copy of mail I sent saved into a folder (easily).

Use the Fcc: header, which puts a copy of your out-going mail into a folder. You can get this to appear in your messages in two ways.

1. Add the Fcc: header to the various component files described in #15.
2. Add a "-fcc sent-mail" argument to your MH profile entries for comp, repl, and forw

### 17. What is a good alternate Print command to get good formatting?

<Ethan Miller says:> I use the mp package to print mail (and other files as well). Mailp (one of the commands in mp) prints mail nicely. My print command is:

    mailp -landscape -twosided -bsdprinter $file

<Anne Possoz adds:> But without metamail piped to mp, in certain circumstances like mail coming from MacIntosh (is0-8859, quote-printable) the accents do not come right. That is why we use:

    metamail $file | mp -l | lp

You can get mp at ftp.x.org in contrib/utilities.

### 18. How do I change the folder table of contents listing?

[See also question 2c.]

This is a feature of the `scan` and `inc` MH programs. They take a macro file that describes how to generate this display. The default is buried in your MH lib directory as scan.form, or scan.default

Here is what I have for the default:

`%; NOTE: This file is supplied for reference only; it shows the default
%; format string (for non-UK sites) which was compiled into "scan".
%; See the source file "h/scansbr.h" for details.
%4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\
%02(mon{date})/%02(mday{date})%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%> \ %{subject}%<{body}<<%{body}>>%>`

Copy this into ~/Mail/scan.form Add

    scan: -form scan.form
    inc: -form scan.form

to your .mh_profile

NOTE: Exmh depends on the output of the scan form to have the message number come first, followed by a character that can be either a space or a plus '+' to mark the current message So - leave this magic at the front (you can change the 4 as noted below)

`%4(msg)%<(cur)+%| %>`

Now edit the form as described below.

### 18a. Remove the leading words of the message

Remove the trailing "%<{body}<<%{body}>>%>" from the scan.form

### 18b. Handle message numbers > 9999

Change the leading "%4(msg)" to "%5(msg)" (or %6 to allow > 99999

### 18c. Add annotations to messages that have been replied to.

MH provides an annotation facility that will cause new message headers to be added to a message when you reply to or forward the message. In addition, the default scan.form adds a dash (-) to the scan listing for annotated messages so you can see their status in the folder table of contents.

To get annotations you must add to your .mh_profile.

    repl: -annotate

If you have other profile options for repl, just add -annotate. Note: it won't work to abbreviate it as -anno.

### 18d. Colorize message headers.

Did you know you can colorize rfc822 headers in the message display by setting *m_tagnames and related X resources? This feature has been around for some time, but seems to be little-known. Here's what I have in my ~/.exmh/exmh-defaults-color file.

`*m_tagnames: hidden subject from x-filters-matched content-type x-mailer replied replied-to`

m_tagnames lists headers that have display resources associated with them. There are two special ones, "hidden" applies to the headers that are scrolled off the top of the display. "general" applies to the ones that are visible by default. The rest are just literal names of headers.

The display resources are anything that is valid for the Tk text widget tag facility. The most useful ones are font and foreground, but you can check out the Tk text widget man page for all the possibilities. Here is what I use:

`*m_hidden: -font 6x10
*m_subject: -foreground blue
*m_x-filters-matched: -foreground "medium sea green"
*m_content-type: -foreground "medium sea green"
*m_x-mailer: -foreground "medium sea green"
*m_from: -foreground blue
*m_replied: -foreground "violet red"`

### 19. How do signatures work?

Create a file called .signature in your home directory. Then when you hit the Sign button, sedit will add the contents of that file to the end of your message. To create multiple signatures, just create multiple files with .signature as a prefix (for example, .signature and .signature.rant). Then the Sign button becomes a Sign... menu.

If you have Auto-sign enabled in the Simple Editor Preferences section, your signature will be added to the message when you hit Send rather than when you hit the Sign button. In this case, the "(intelligent)" option on the Sign... menu causes messages being sent solely within the local domain to be signed using a different file from those being sent outside of it; the Intelligent Signatures Preferences section allows you to specify which files to use.

Another trick is to create an executable program that outputs your signature text. If you call this program .signature.something, sedit will append the output of the program to the end of your message when you choose that signature file. Three arguments will be passed to this program (in this order): the command used to create that message (i.e. one of [comp, repl, forw, dist, unknown]), the name of the current folder when composition was started, and the filename of the draft message. You can then use these arguments in your program to decide what signature text to output: for example, you might look inside the draft message to find out who it is being sent to, or what its subject line says.

### 21. How do I make exmh look good with WindowMaker or GNUstep?

First get tkstep up and running. tkstep may be found at one of these locations:

- http://rhein-zeitung.de/~ograf/wm/TkStep.html
- http://touchwood.ee.uts.edu.au/TkSTEP/TkSTEP.html

Second, in the exmh installer, specify wishstep instead of wish.

Third, go into Preferences>Windows & Scrolling and move the Vertical Scrollbar from the right side to the left side.

### 22. How do I make exmh want to display messages as plain-text rather than HTML-formatted?

Add the following lines to your ~/.exmh/exmh-defaults file and restart exmh.

`*mime_alternative_prefs: text/plain text/richtext text/html`

### 23. How can I stop my own address from appearing on the cc list when I reply to messages?

MH/nmh needs to be told not to include you in replies. To do this it also needs to know what address(es) are yours. Both of these things are specified in your ~/.mh_profile file:

1. Add this line to your .mh_profile:

       repl: -nocc me

   (or add "-nocc me" to the repl line if you already have one)
2. Add the following line to your .mh_profile:

       alternate-mailboxes: your_address@your_domain

   (if you have more than one address that you want considered to be your address, add an entry for each. Like this:

       alternate-mailboxes: your_addr@your_domain, your_addr2@your_domain2, ...

   (these can contain "*" as a wildcard if you want).

   See the mh-profile manpage for more details.

### 24. How do I fix errors from the scan command.

Errors from scan are most likely caused by conflicting entries in your .mh_profile for "scan" or "scanproc". Here is a summary of what you can and cannot do:

- In .mh_profile, do not put any arguments to scan in a "scanproc" line, e.g.,

      scanproc: scan -myfavorite scan arguments

  This will break because exmh thinks the whole thing is the name of a program. (This is to handle white-space in file names.)
- Instead, use the "scan" entry in your .mh_profile for arguments:

      scan: -myfavorite arguments

Back to the exmh index