0

I am trying to send email like this

var fromAddress = new MailAddress("fromaddress", "From Name");
        var toAddress = new MailAddress("toaddress", "To Name");
        const string fromPassword = "password";
        const string subject = "Subject";
        const string body = "Body";

        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
        };
        using (var message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            Body = body
        })
        {
            smtp.Send(message);
        }


        Console.WriteLine("Sent");
        Console.ReadLine();

but it gives this error .

The SMTP server requires a secure connection or the client was not authenticated. 
The server response was: 5.5.1 Authentication Required.

I am sing this code in simple console application on my local host . So whats the issue in my code ?

Update

I changed fromAddress email and it send email successfully . But i don't receive any email in my toAddress email's inbox/Spam .

Ancient
  • 3,007
  • 14
  • 55
  • 104

2 Answers2

1

Try to add DeliveryMethod = SmtpDeliveryMethod.Network when creating SmtpClient.

See post: https://stackoverflow.com/a/489594/1432770

There is a variety of reasons for this discussed here: Sending email through Gmail SMTP server with C#

Your code in the first link has worked for me.

Community
  • 1
  • 1
George Philip
  • 704
  • 6
  • 21
0

Do you use two steps verification? You need to sign in using application-specific passwords: https://support.google.com/accounts/answer/185833?hl=en

Your code worked for me too!

Akira Yamamoto
  • 4,685
  • 4
  • 42
  • 43