我正在尝试使用以下命令从命令行从 mutt 发送和发送电子邮件:
mutt -F /my/path/to/muttrc -s "Hello" an@email.com < test.txt
Run Code Online (Sandbox Code Playgroud)
但什么也没有发生。Mutt 不显示任何错误,但邮件未发送。
如果我使用mutt
命令输入交互式 mutt并从那里发送电子邮件,一切正常。
在我的 muttrc 中,我配置了一个 gmail 帐户,如下所示:
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'
Run Code Online (Sandbox Code Playgroud)
看起来您仅在文件夹挂钩中设置 smtp_url 。这意味着它仅在您使用该文件夹时设置,并且当您使用非交互式命令行方法时,它实际上从未尝试访问该文件夹,因此从未设置过 smtp_url,因此它不知道是什么方法发送消息。它可能默认使用其他方法(如管道到 sendmail)并失败。