MH & nmh: Email for Users & Programmers

May, 2006

Checking for Mail Waiting: msgchk

The msgchk command will tell you whether there's mail waiting for you. Here's an example:

    % msgchk
    You have new mail waiting; last read on Mon, 09 Jan 1995 14:37:09
Many UNIX hosts with local mailboxes output a message, like You have mail, if messages are waiting as you log in. If your host doesn't, you can do it by adding a call to msgchk in your shell setup file (.login, .profile). To suppress the message when there's no mail, save the msgchk output in a shell variable and test the exit status. A non-zero status means that there were no messages -- or some other problem. The next Example shows how:

Example: Automatic mail check in shell setup file

Bourne and Korn shells:

    if msgs=`msgchk`
    then echo "$msgs"

C shell:

    set msgs=(`msgchk`)
    if ($status == 0) echo "$msgs"
mgschk also works across a network with POP; the Section Using MH with POP has basic information.