【问题标题】:How to prevent code the being send duplicate email in asp.net?如何防止代码在 asp.net 中发送重复的电子邮件?
【发布时间】:2019-07-20 05:21:09
【问题描述】:

我的网站上有一个代码,用于在用户单击按钮时发送电子邮件。由于某些原因,代码开始发送大量重复的电子邮件。实际上,它在达到 GoDaddy 每日限制时停止发送,即。 5000 封电子邮件!!!

有什么办法可以防止这种情况发生吗? SMTP 超时在这种情况下有帮助吗?

    try
    {
        SmtpClient client = new SmtpClient("sg2nlvphout-v01.shr.prod.sin2.secureserver.net", 25);
        client.EnableSsl = false;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Credentials = new NetworkCredential("email@domain.com", "password");
        MailMessage msgobj = new MailMessage();
        msgobj.To.Add(email);
        msgobj.From = new MailAddress("email@domain.com");
        msgobj.Subject = "Subject";
        msgobj.Body = body;
        AlternateView altView = AlternateView.CreateAlternateViewFromString(msgobj.Body, null, MediaTypeNames.Text.Html);

        msgobj.AlternateViews.Add(altView);

        client.Send(msgobj);
    }
    catch (Exception ex)
    {

    }

【问题讨论】:

  • 您确定这是技术问题吗?不是垃圾邮件发送者/机器人或类似的东西吗?
  • 您是否在询问如何防止用户向您发送垃圾邮件?
  • @Julian 我不这么认为。很可能,这是一个技术问题
  • 向您的代码/页面添加验证码!
  • 为什么你的代码中有一个空的 catch 块?您不在乎处理此请求时是否出现问题?

标签: c# asp.net iis


【解决方案1】:

试试这个,

try
    {
        bool flag = false;
if(!flag)
{        
        SmtpClient client = new SmtpClient("sg2nlvphout-v01.shr.prod.sin2.secureserver.net", 25);
        client.EnableSsl = false;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Credentials = new NetworkCredential("email@domain.com", "password");
        MailMessage msgobj = new MailMessage();
        msgobj.To.Add(email);
        msgobj.From = new MailAddress("email@domain.com");
        msgobj.Subject = "Subject";
        msgobj.Body = body;
        AlternateView altView = AlternateView.CreateAlternateViewFromString(msgobj.Body, null, MediaTypeNames.Text.Html);

        msgobj.AlternateViews.Add(altView);

        client.Send(msgobj);
        flag = true;
}
    }
    catch (Exception ex)
    {

    }

【讨论】:

    猜你喜欢
    • 2014-03-27
    • 2014-07-16
    • 1970-01-01
    • 2018-10-06
    • 2013-02-24
    • 2013-06-22
    • 2012-02-12
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多