What I was afraid of - introducing a new package creates new errors.
Anyway, I removed exim4 and brought in msmtp. I've got it working now, after much gnashing of teeth and pulling of hair.
I had to tell it not to cert_check, and also had to create a "default" account (actually called default) in order to get it to work with s-nail. I'm wondering whether its the certificate check that caused the issue with exim4? While I'm vulnerable to a "man in the middle attack" for outgoing e-mail using msmtp without a certificate check, I'm not overly worried about that.
However, I've now got another problem. I need to have a different reply-to address or (preferably) a from address that is separate from the username used to log onto the smarthost.
While mail allows me to use -r to do that, mail sent using a return address that is different from the msmtp from address fails. I get the message 'mail: cannot send message: Process exited with a non-zero status".
S-nail is a little more informative on this. It tells me
ending e-mail to Gary Dale at
garydale@rogers.com
sendmail: envelope from address <a from address> not accepted by the server
sendmail: server message: 550 Request failed; Mailbox unavailable
sendmail: could not send mail (account default from /home/garydale/.msmtprc)
done
I'm able to get a reply-to with s-nail using -S replyto=<replyto address> which works for now.
However now I run into a different problem. Rogers limits the amount of e-mail I can send per account. Since msmtp doesn't queue e-mail, any messages that the Rogers/Yahoo servers don't accept get discarded. I believe that under Exim4 they would remain in the queue and be re-tried later.