使用CSharp / .net中的gmail SMTP发送邮件

时间:2015-03-25 08:55:24

标签: c# .net smtp gmail

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.

我一直在使用gmail收到此错误,但我可以使用其他SMTP服务器发送邮件。凭证是正确的。

3 个答案:

答案 0 :(得分:5)

看起来Gmail帐户存在安全问题

我也面临同样的问题,然后从this post找到解决方案。

帖子提到您需要使用"访问安全性较低的应用程序"更改帐户权限设置。启用。

实际上,当您登录自己的Gmail帐户时,您会收到通知。

答案 1 :(得分:3)

    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这是我可以使用它的代码,只有这个代码的问题是有时邮件会出现垃圾邮件文件夹。

答案 2 :(得分:0)

您需要为您的Gmail帐户启用两步验证并获取应用程序密码。然后使用该密码而不是常规密码。