使用live / gmail smtp发送电子邮件

时间:2016-06-23 13:38:55

标签: c# .net email smtp gmail

我正在使用C#使用SMTP和gmail服务器发送电子邮件。

以下是我用来发送电子邮件的代码。我遇到了一些错误,即

  

SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。

    public static bool SendEmail(string from, string[] to, string[] cc, string[] bcc, string subject, string body, bool isBodyHtml, List<Attachment> attachmentList)
    {
        try
        {
            var mailMessage = new MailMessage();
            var smtpClient = new SmtpClient();

            mailMessage.From = new MailAddress(from);
            mailMessage.To.Add(new MailAddress(string.Join(",", to)));

            if (cc != null && cc.Any())
            {
                mailMessage.CC.Add(new MailAddress(string.Join(",", cc)));
            }

            if (bcc != null && bcc.Any())
            {
                mailMessage.Bcc.Add(new MailAddress(string.Join(",", bcc)));
            }

            mailMessage.Subject = subject;
            mailMessage.Body = body;
            mailMessage.IsBodyHtml = isBodyHtml;

            if (attachmentList != null)
            {
                foreach (var attachment in attachmentList)
                {
                    mailMessage.Attachments.Add(attachment);
                }
            }

            smtpClient.Host = "smtp.gmail.com";
            smtpClient.Port = 587; //465
            smtpClient.Credentials = new System.Net.NetworkCredential("username@email.com", "passsword");
            smtpClient.EnableSsl = true;
            smtpClient.Send(mailMessage);

            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }

我做错了什么以及如何使用gmail发送电子邮件。

2 个答案:

答案 0 :(得分:3)

您尚未将UseDefaultCredentials设置为false,因此尽管您提供了凭据,但应用程序仍在尝试使用您的Windows凭据登录SMTP。试试以下内容:

smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential("username@email.com", "passsword");
在设置新网络凭据之前,

UseDefaultCredentials需要设置为false

答案 1 :(得分:2)

如果您确定自己的用户名和密码正确并且仍然收到错误,则表示 Gmail 已阻止您的应用。

尝试从此处开启Grant Access to Less Secure Apps

Secure App