在C#.NET captcha块中发送电子邮件

时间:2013-06-27 08:13:28

标签: c# .net gmail captcha

我在使用C#发送电子邮件时遇到了严重问题。这是代码:

SmtpClient newSmpt = new SmtpClient()
    {
        Host = "smtp.googlemail.com",
        Port = 587,
        EnableSsl = true,
        DeliveryMethod = SmtpDeliveryMethod.Network,
        Credentials = new NetworkCredential("mail@gmail.com", "password"),
        Timeout = 30000
    }

string body = 'html body';
String bodyEmail = email.Replace("@", "<span>@</span>");
bodyEmail = bodyEmail.Replace(".", "<span>.</span>");
body = body.Replace("<%email%>", bodyEmail);
body = body.Replace("<%name%>", name);
body = body.Replace("<%name%>", name);

MailMessage mailMessageMox = new MailMessage("mail@gmail.com", "info@mail.it", "Title", body);
mailMessageMox.IsBodyHtml = true;
newSmpt.Send(mailMessageMox);

使用此代码我设法正确发送邮件。有时我会使用以下消息从Send方法中捕获异常:“smtp服务器需要安全连接或客户端未经过身份验证”。如您所见,EnableSsl属性设置为true,如其他帖子中所述。当我转到gmail并尝试使用代码中使用的凭据登录时,它会要求我输入验证码。进入验证码后,我可以登录,然后代码工作正常。问题是这可能发生的次数太多了。

如何阻止在Gmail中询问验证码?

2 个答案:

答案 0 :(得分:1)

解锁您正在使用的帐户的验证码可以解决您的问题:

http://www.google.com/accounts/DisplayUnlockCaptcha

答案 1 :(得分:0)

我认为您的问题不在于通过SmtpClient发送电子邮件。 它应该工作得很好

查看此问题,了解通过SmtpClient

从Gmail发送所需的所有设置

Sending email in .NET through Gmail

您的Gmail帐户中应该有一个配置,可让您发送电子邮件,而无需使用验证码验证您的凭据。