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

本文关键字:电子邮件 captcha | 更新日期: 2023-09-27 18:20:08

我在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并尝试使用代码中使用的凭据登录时,它会要求我输入captcha代码。输入captcha后,我可以登录,然后代码就可以正常工作了。问题是这种情况可能发生太多次。

如何在gmail中阻止captcha提问?

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

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

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

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

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

通过Gmail 在.NET中发送电子邮件

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