Add support of SMTP authentication

This patch adds support of SMTP authentication w/ or wo/ SSL or TLS.
I think the argument to this method should always be an integer (or `None`). The input verification should be moved to `choose_mailer()`.