I use socketlabs.com as my email delivery service, and had a similar issue. In my case the solution was to edit lib/tasks/emails.rake as follows:
Change the line:
Net::SMTP.start(smtp[:address], smtp[:port], 'localhost', smtp[:user_name], smtp[:password])
to
Net::SMTP.start(smtp[:address], smtp[:port], 'localhost', smtp[:user_name], smtp[:password], smtp[:authentication])
Without this change, the DISCOURSE_SMTP_AUTHENTICATION: login doesn’t get passed to the lower level SMTP code.
I haven’t tested this to see if the modified code still works for other authentication methods, but it fixes the problem for login authentication.