Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#.NET验证码块中发送电子邮件_C#_.net_Gmail_Captcha - Fatal编程技术网

在C#.NET验证码块中发送电子邮件

在C#.NET验证码块中发送电子邮件,c#,.net,gmail,captcha,C#,.net,Gmail,Captcha,我在用C#发送电子邮件时遇到了一个严重的问题。代码如下: SmtpClient newSmpt = new SmtpClient() { Host = "smtp.googlemail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, Credentials = new NetworkCredent

我在用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);
SmtpClient newSmpt=新的SmtpClient()
{
Host=“smtp.googlemail.com”,
端口=587,
EnableSsl=true,
DeliveryMethod=SmtpDeliveryMethod.Network,
凭据=新的网络凭据(“mail@gmail.com“,”密码“),
超时=30000
}
字符串体='html体';
字符串bodyEmail=email.Replace(“@”和“@”);
bodyEmail=bodyEmail.Replace(“.”,“);
body=body.Replace(“,bodyEmail”);
body=body.Replace(“,name”);
body=body.Replace(“,name”);
mailMessageMox=新邮件(“mail@gmail.com", "info@mail.it“,”标题“,正文);
mailMessageMox.IsBodyHtml=true;
newmpt.Send(mailMessageMox);
使用此代码,我成功地正确发送邮件。有时,我会从Send方法捕获一个异常,并显示以下消息:“smtp服务器需要安全连接,或者客户端未通过身份验证”。如您所见,EnableSsl属性设置为true,如其他文章中所述。当我转到gmail并尝试使用代码中使用的凭据登录时,它会要求我输入验证码。输入验证码后,我可以登录,然后代码就可以正常工作了。问题是这种情况可能会发生太多次


如何阻止gmail中的验证码询问?

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


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

查看此问题,了解通过
SmtpClient从Gmail发送所需的所有设置


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

不幸的是,这没有起到作用。我点击了链接并在10分钟内使用了.NETWeb服务的帐户,但两天后它又被阻止了。