System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated
c#, smtp, smtpclient
Solution
That error message is typically caused by one of the following:
- Incorrect connection settings, such as the wrong port specified for the secured or non-secured connection
- Incorrect credentials. I would verify the username and password combination, to make sure the credentials are correct.
Problem
I'm trying to send email with my website's address from a C# application. This worked fine for several months until recently. (maybe my provider changes some things or someone else changed settings) Here's the code: ``` private void sendEmail(Email invite) { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient(smtpServerName); mail.From = new MailAddress(emailUsername); mail.To.Add(invite.RecipientEmail); mail.Subject = invite.MessageSubject; mail.Body = invite.MessageBody; SmtpServer.UseDefaultCredentials = false; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential(emailUsername, emailPassword); // SmtpServer.EnableSsl = true; SmtpServer.Send(mail); } ``` Here's the error: The SMTP server requires a secure connection or the client was not authenticated. The server response was: SMTP authentication is required. Looking at other questions I tried what they suggested, to make `SmtpServer.EnableSsl = true`. This didn't work at all. It gave the following: System.Net.Mail.SmtpException: Server does not support secure connections. I'm guessing I should disable SSL and have it the way it was before. Any suggestions how to make email sending work again? EDIT I've tried without `SmtpServer.UseDefaultCredentials = false;` I've tried with it set to true: `SmtpServer.UseDefaultCredentials =true;` I've tried commenting that line along with the following `//SmtpServer.Credentials = new System.Net.NetworkCredential(emailUsername, emailPassword);`