Sending Mail using gmail SMTP from CSharp/.net

2019-01-27 04:24发布

问题:

using(SmtpClient client = new SmtpClient("smtp.gmail.com", 587)) 
{
    // Configure the client
    client.EnableSsl = true;
    client.UseDefaultCredentials = false;
    client.Credentials = new NetworkCredential(textBox1.Text, textBox3.Text);

    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    MailMessage message = new MailMessage(
    textBox1.Text, // From field
    textBox2.Text, // Recipient field
    textBox4.Text, // Subject of the email message
    richTextBox1.Text // Email message body
    );

    client.Send(message);

    MessageBox.Show("Email has been sent.");
}

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

I have been getting this error with gmail but am able to use other SMTP Servers to send mails. The credentials are correct.

回答1:

Looks like there is a security issue with Gmail account.

I have also faced that same issue and then found solution from this post.

The post mentioned that you need to change the Account Permission setting with "Access of Less secure App" Enabled.

In fact you will get notification when you logged in to your gmail account.



回答2:

    message.To.Add(new MailAddress("abc@abc.com));  // replace with valid value 
        message.From = new MailAddress("abc@abc.com", "Contact Form");
        message.Subject = Subject;
        message.Body = string.Format(NewBody);
        message.IsBodyHtml = true;
        using (var smtp = new SmtpClient())
        {
            var credential = new NetworkCredential
            {
                UserName = "abc@gmail.com",  // replace with valid value
                Password = "qwerty123456"  // replace with valid value
            };
            smtp.Credentials = credential;
            smtp.Host = "smtp.gmail.com";
            smtp.Port = 587;
            smtp.EnableSsl = true;
            smtp.Send(message);
        }

Just This is working code for me you can use it,Only Problem with this code is sometime mails are coming in spam Folder.



回答3:

You need to enable two step authentication for you Gmail account and get application password. Then use that password instead of regular one.



标签: c# .net smtp gmail