Mutt on Windows (32bit)

[Home]   --   [Cygwin]   [Windows]   [DOS]


This is a port of Mutt to the Microsoft Windows operating systems. It runs as a native win32 application. The port has been reported to work on Windows 95/98/ME/2000.

Consider the port to be of beta quality in the sense that it seems to work correctly in most cases, but it has not been tested to work properly on all Windows versions and some features of Mutt are not enabled (yet). Windows is Not Unix. The remaining features will need rewrites and work-arounds before they can be added (if ever). Help is needed. Patches are welcome.

If you need a full-fledged Mutt for Windows you should consider installing Cygwin. The Cygwin port of Mutt is by far more complete than this one, and Cygwin comes with many of the Unix tools Mutt is intended to run in co-operation with. (but mutt on unix is better still..)


File size date comments 1.3M 2002-06-05 requires libiconv and openssl dll:s 258k 2002-06-05 mutt.exe 357k 2002-06-05 no iconv, no ssl

File size date origin   55k 2001-06-01 urlview   60k 2001-11-04 abook 129k 2001-06-09 catdoc   15k 2001-09-13 smtppush

File / local copy size GnuWin32 port package   660k libiconv   82k openssl   339k openssl

Known bugs:

        Bugs introduced when porting
  • There is no locking of files what-so-ever !
    [ Windows/MinGW doesn't support 'flock()' nor 'fcntl()' ]
  • Filters are disable at some places and badly mimicked at others.
    [ Windows/MinGW doesn't support 'fork()' ]
    • $sendmail is called through a system call instead of fork and pipe
    • <pipe-message> is done by system( "command < infile > outfile" )
    • <pipe-entry> is disable
    • <print-message> is disabled
    • <print-entry> is disabled
    • All PGP commands are disabled
          The crashes should be gone thanks to a patch by Thomas Roessler, 2001-06-05.
  • The number of signals supported by Windows/MinGW are very limited.
  • There is no automation of mailchecking or keeping a connection alive.
    [ PDCurses doesn't implement 'timeout()' ]
    • $timeout is disabled
    • $imap_keepalive is disabled.
  • $sendmail_wait has no meaning (since there is no other process involved)

To install the pre-compiled binaries just unzip the zip file while preserving the directory structure, such that you get a /mutt directory. (C:\mutt if installed at top-level on C:) It is okay to rename the directory, for instance to reflect the version by naming it mutt-1.4i, but let the subdirectories remain. The executable is named /mutt/bin/mutt.exe. Create a shortcut to start Mutt if you wish. In a "normal" case this is all it takes to install Mutt. Deinstallation is by simply removing the Mutt-directory.

Mutt requires libiconv to convert text between character sets, and libssl+libeay to handle ssl connection. Since the first reason to compile Mutt as a native Windows version was to not depend on extra dll:s (like cygwin.dll) there is also a a minimal version that only requires Microsoft dll:s. Windows 95 users might still need to install msvcrt. (mingw faq: "what runtime should i use?" )

If Mutt fails to find your username or home directory set the environment variables %USER% and %HOME%. Actually, Mutt also understands %USERNAME% as your username and both %USERPROFILE% and %HOMEPATH% as your home directory. It is also possible to set %MUTT_ROOT% to point where you store all Mutt files.

In case you really need to set any of these explicitely (at least win95 users need this) you can easily build a small mutt.bat file to set it before calling Mutt.

   set USER=ulf
   set HOME=C:\Documents and Settings\%USER%
   set MUTT_ROOT=C:\Program Files\mutt
   "%MUTT_ROOT%\bin\mutt.exe" %1 %2 %3 %4 %5 %6 %7 %8

Other environment variables that can be set before calling Mutt are:
Environment variable Purpose and Description
%SHELL% Shell to invoke on an empty <shell-escape> command.
%USERDOMAIN% Domain or hostname for your computer. Used in message id:s.
%MAIL% Indicates what file should be treated as the spoolfile. (That's the main incomming mailbox mutt starts by viewing)
%MAILCAPS% List of mailcaps files to search. Separate them with a semicolon, ";".
%TEMP% Directory where temporary files are created. (Can also be named %TMP% or %TMPDIR%)
%EDITOR% Editor to use for writing mails. Surround the full path program name by double quotes ("). The "builtin" editor is a very poor line editor to use as a last resort.
%VISUAL% Visual editor to use for editing when mails are written with $editor="builtin".
%REPLYTO% E-mail address to use in the Reply-To: header.
%LANG% Language that messages should be given in. (see directory names in /mutt/share/locale/ for possible values)

Most of these can also be setup by your personal .muttrc file, or even altered from within Mutt.

There is no difference setting Mutt up for Windows or for Unix. If you are not happy with the default settings you can alter them either system wide, for all users, or personally, for you alone. The system wide configuration file is named /mutt/etc/Muttrc. (C:\mutt\etc\Muttrc if you installed Mutt at top-level on C:) Your personal muttrc is located in your home directory where you may choose to name it either .muttrc or .mutt/muttrc.

The muttrc configuration file is described in 'man muttrc', and discussed in the manual. (Section 3: Configuration, Section 6.2: Configuration Commands, and Section 6.3: Configuration variables)

In case you never setup Mutt before you could start by adding realname, from, and alternates. to your personal .muttrc. You should also tell where your mails are stored by setting spoolfile, folder, mbox, and record. Also look at variables such as imap_user, pop_user and pop_host if you have an Imap or Pop account. This should be enough to let you use Mutt, but most everything is configurable if you wish.

   set realname = "Ulf Erikson"
   set from = ""
   # set alternates = '(user|first\.lastname)@company\.com'

   set spoolfile = "~/Mail/inbox"
   set folder = "~/Mail"
   set mbox = "+received"
   set record = "+sent"

   set pop_host = ""
   set pop_user = "ulferikson"
   # set pop_pass = ""

   set sendmail = "builtin"
   set smtp_serv = ""
   set smtp_user = "ulferikson"
   # set smtp_pass = ""   # Try to use ESMTP and AUTH LOGIN
   # Warning: password is sent as plain text (base64 encoded. no encyption)

Easiest way to write your first fully configuring muttrc is by using the automated rc-builder. After that, look at others rc files to see what more is possible to do.

If you already run Mutt on Unix you should be able to reuse most of your muttrc except for the $sendmail variable. To use the builtin smtp support set $sendmail to "builtin" or an empty string. Setup smpt by altering $smtp_serv, $smtp_port, $smtp_user, $smtp_pass, and $smtp_host. If you rather use an smtp-client, like e-mail from ukaw or sendsmtp from slrn, use a "%s" to mark where the file should be passed to the command. If your sendmail program wants all recipients on the command line, like ssmtp, put a "%t" to mark where they should be added.

Common operation is described in the manual. (Section 2: Getting Started)


Site map
   Mutt on Cygwin
> Mutt on Windows
   o   Manual
   Mutt on DOS

Created on March 10, 2001.
Last modified on June 5, 2002.