SMTP: Impossible to send email with client cert and without AUTH
.muttrc
set smtp_url="smtp://xx.example.com:587/
set ssl_client_cert="~/.mutt-xx.example.com.crt"
set ssl_force_tls
At port 587 is postfix/submission -o smtpd_recipient_restrictions=permit_tls_clientcerts,reject -o smtpd_tls_security_level=encrypt -o smtpd_tls_auth_only=no -o smtpd_tls_req_ccert=yes -o smtpd_tls_CAfile=/etc/postfix/client-xx.example.com.crt.
Now mutt says SMTP server does not support authentication but I have already authenticated with the cert.
The following hack takes care of this issue in smtp.c:smtp_open:
- if (conn->account.flags & MUTT_ACCT_USER)
+ if (!SslClientCert && (conn->account.flags & MUTT_ACCT_USER))
Now, I also have not configured username in smtp_url, but mutt still asks unnecessarily for username.
I think the best way to handle this would be smtp_authenticators=cert feature, which makes mutt to not ask for username and does not try to do AUTH. Having ssl_client_cert configured would be a requirement for this feature.
Mutt should also check for errors in ssl_get_client_cert.