Mutt passes the mail to $sendmail for delivery (see MailConcept), but this time the MTA refused to accept it from the MUA, or while processing it some error occured.
Make sure you have /usr/lib/sendmail or /usr/sbin/sendmail installed and your MTA properly configured (read the MTAs docs carefully). Make sure you get sendmail debug-information stored somewhere, for example via /etc/syslog. Try to call sendmail directly from cmd-line for more clues.
And specify the correct path in muttrc.
First have a look at the logfiles of your sendmail-MTA. Normally, status msgs are logged via syslog, RTFM of "syslog" and your MTA to find the location and analyze potential error msgs.
Another thing you can do is turn on DSN (delivery system notification) via the $dsn_* vars, and then check the returned headers. When inspecting headers, always use the full headers, not the weeded (cleared by "ignore"s).
The default behavior of mutt is to wait until the mail is effectively sent. You can disable this by having:
set sendmail_wait=-1Put the line above to your .muttrc and mutt will return the hand without waiting for the email to be sent. However, delivery feedback is then delayed or has to be acquired by other means, see above.
Mutt can't do so directly (read the MailConcept to understand why this won't change). You must specify a local MTA to do it. The MTA must have a sendmail compatible interface to be used with $sendmail. See LightSMTPagents for which to use, configure, install.
Update: Recent versions (1.5.x) of Mutt has built-in SMTP support.
If the smtp option is enabled during the compilation, you just need to add the following lines in you ~/.muttrc or ~/.mutt/muttrc
set smtp_url="smtp://yourusername@smtp.example.com:587/"
set smtp_pass="yourpassword"
If you omit the smtp_pass, Mutt will ask you to enter the password when sending mails.
For older versions of mutt without smtp capability, one simple alternative is the sendmail.py script:
http://www.ynform.org/w/Pub/SendmailPy
As you've learned above, you must tell your local MTA which remote MTA/ SMTP server to use for relay. You can change the invocation of $sendmail "on the fly" by using "macros" and/ or the various hooks to specify a separate config-file per different SMTP server.
... set sendmail="/usr/sbin/sendmail -oem -oi -C /etc/other/sendmail-config"Standard sendmail apparently doesn't allow to override only the SMART_HOST/ mailhub of a config on the cmd-line, so you have to use alternative config file with adjusted entries. More user-friendly solutions can be found on LightSMTPagents.
If you're confronted with frequent save-before-send operations to resend stuff after re-atuhing, then consider using the "postpone" feature: prepare and postpone them all, then when ready to send, simply recall one-by-one and fire them off. This should work fast enough to stay below even 1min timeouts.