Mutt silently failing when trying to send an e-mail from command line

emailmutt

I'm trying to send and e-mail from mutt from command line using following command:

mutt -F /my/path/to/muttrc -s "Hello" an@email.com < test.txt

But nothing happens. Mutt doesn't display any error but mail it's not sent.

Everything works fine if I enter interactive mutt using mutt command and send the e-mail from there.

In my muttrc I have configured a gmail account, like this:

account-hook    imaps://a_user@imap.gmail.com 'set imap_user=a_user@gmail.com imap_pass="password"'
folder-hook     'imaps://a_user@imap.gmail.com' 'set folder=imaps://a_user@imap.gmail.com/'
set folder=imaps://a_user@imap.gmail.com/
mailboxes +INBOX
set spoolfile = +INBOX
folder-hook    imaps://a_user@imap.gmail.com 'set smtp_url="smtps://a_user:password@smtp.gmail.com"'
folder-hook     'imaps://a_user@imap.gmail.com' 'set from=a_user0@gmail.com'
folder-hook    imaps://a_user@imap.gmail.com 'set realname="A Real Name"'

set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates
unset record
set timeout=15
set mail_check=60
set imap_keepalive = 900
unset imap_passive
set move = no
set sort = 'last-date-received'
set charset=utf-8
set locale=$LANG
send-hook "~f a_user@gmail.com" 'set signature="~/.mutt/signature"'
set editor = 'vim'

Best Answer

Looks like you're setting smtp_url only in a folder-hook. That means that its only set when you use that folder, and when you're using the non-interactive command line method, it never actually tries to access the folder, so smtp_url isn't ever set, so it has no idea what method to send messages. It might be defaulting to some other method (like piping to sendmail) and failing.

Related Question