• Products

    Microsoft .NET

    Microsoft .NET components, libraries & tools

    • EmailVerify for .NET
      Email validation library, featuring full IETF-compliant syntax validation, DNS checking, mailbox existence test and tools for advanced batch processing.
    • ProxyClient for .NET
      Powerful proxy client library with support for SOCKS 4, SOCKS 4a, SOCKS 5 and HTTP proxy servers, allowing to establish and accept remotely proxied connections.
    • MVC Extensions
      Powerful routing engine extensions for ASP.NET: allows to declare routes by way of attributes applied to MVC actions and generates URLs using compiler-safe lambda expressions.

    Microsoft Silverlight

    Microsoft Silverlight components, libraries & tools

    • EmailVerify for Silverlight
      Email validation library with Data Annotations support, featuring advanced syntax verification, ISP-specific syntax checks and disposable email address handling.

    Microsoft Visual Studio extensions

    Development tools, integrated into your favorite IDE

    • Routing Assistant
      FREE

      A cool and free Visual Studio extension which allows to easily browse, define, match and filter ASP.NET MVC routes within ASP.NET applications and web sites.

  • Purchase

    Products

    • EmailVerify for .NET
      • Licensing / editions
      • Volume discounts
      • Upgrades
      Purchase
    • ProxyClient for .NET
      • Licensing
      • Volume discounts
      • Upgrades
      Purchase
    • MVC Extensions
      • Licensing
      • Volume discounts
      • Upgrades
      Purchase

    Request a quote

    • Contact us
      Send a request to our sales staff.

  • Support

    Knowledge base

    • Browse the knowledge base
      Support documents for our products and services.

    Request support

    • Contact us
      Send a request to our customer support staff.

  • About us

    About Cobisi

    About our company, our team, our mission

    • Our company
      Cobisi company information.
    • Our mission
      About what we aim to achieve.
    • Follow us
      Follow us on Twitter.

    Contact us

    • Contact us
      Send a request to our customer support staff.

  • Company blog

    Latest posts from our blog

    Shared thoughts about our technologies, products and services

    • Routing Assistant reached version 1.7
      Published on Thursday, March 21, 2013

    • Verifalia: a new, complete hosted email validation service
      Published on Thursday, December 6, 2012

    • Routing Assistant v1.4 released
      Published on Friday, October 12, 2012

The Cobisi Blog

Let the voice be heard

  • Contact us
  • Knowledge base

Respect Netiquette and avoid temporary bans

Published on Thursday, April 14, 2011
Today mail exchangers employ different strategies to defend themselves from abuse and overloading; one of these is based on the assumption that a typical spammer or, more generally, a typical bot would eventually try to make a high number of requests in a short amount of time. This event is likely to be detected by modern SMTP servers and can lead to temporary bans of the originating IP address.

If you are going to validate a big number of email addresses using Smtp level or greater for the same domain (validations against different domains do not have any limitation) with EmailVerify.NET, you should consider following Netiquette and avoid performing too many email validations for the same domain (assuming that the mail exchangers for the same domain can share temporary bans, for the sake of simplicity) in a short amount of time.
But how much is this time? No one can answer to this question, as a standard does not exist and this value is up to each system administrator. As a rule of thumb, however, you should avoid querying the same mail exchanger more than 5-6 times in a minute.

EmailVerify.NET comes with a configurable property named SameDomainConnectionDelay, which allows specifying an interval expressed in seconds that the component will observe between subsequent connections to the same SMTP server. This property has a default value of 10 seconds, so you don't have to configure anything to respect Netiquette as it is already followed by default by the component. :)

But what can you do if, say, you need to validate thousands of email addresses from the same domain? Fortunately, EmailVerify.NET allows you to choose a different IP address for each SMTP request, based on an event handler you can bind to the LocalSmtpEndPointBinding event of the component, and thus cycle the originating endpoint the target mail exchangers see. This way, the total maximum number of email addresses for the same domain you can validate in a minute is proportional to the number of IP addresses you can bind to EmailVerify.NET: the higher the number of available IP addresses the higher the number of email addresses for the same domain you can validate in parallel!

In the following code snippet, for example, EmailVerify.NET is configured to cycle among three different originating IP addresses, in a round-robin fashion:

using System.Net;
using Cobisi.EmailVerify;

class Program
{
    static void Main()
    {
        // TODO: Retrieve a real list of public endpoints

        IPEndPoint[] availableEndPoints = new IPEndPoint[] {
            new IPEndPoint(IPAddress.Parse("10.0.1.1"), 0),
            new IPEndPoint(IPAddress.Parse("10.0.1.2"), 0),
            new IPEndPoint(IPAddress.Parse("10.0.1.3"), 0)
        };

        EmailVerifier verifier = new EmailVerifier();

        // Configure the component to cycle the local SMTP endpoint

        int iCurrentEndPoint = 0;

        verifier.LocalSmtpEndPointBinding += (sender, args) =>
        {
            // Retrieve the next available endpoint

            var endPoint = availableEndPoints[iCurrentEndPoint % availableEndPoints.Length];
            args.LocalSmtpEndPoint = endPoint;

            iCurrentEndPoint++;
        };

        // TODO: Use the component
    }
}


For additional information about the local SMTP endpoint cycling feature of our component, please see our user guide at pages 33-35.

Cheers
 
--
Efran Cobisi
EmailVerify.NET lead developer


Latest entries

March, 2013

  • Routing Assistant reached version 1.7

December, 2012

  • Verifalia: a new, complete hosted email validation service

October, 2012

  • Routing Assistant v1.4 released

June, 2012

  • Just released: a new SEO extension for the ASP.NET MVC routing engine

April, 2012

  • Twelve new servers added to our hosted email validation service
  • Software Technical Writer needed (C#, .NET, ASP.NET), part-time, telecommute

January, 2012

  • EmailVerify.NET is now part of the Cobisi family of products

August, 2011

  • Just launched: hosted email validation service beta

July, 2011

  • New support for SMTP dialog extraction and analysis and advanced proxy binding

June, 2011

  • EmailVerify.NET v4.3 released: support for internationalized mailbox names and definitive RFC 5336 compliance
  • EmailVerify.NET reviewed on DevProConnections!

May, 2011

  • Faster catch-all validations for HotMail (MSN and Live included) and GMail email addresses

April, 2011

  • EmailVerify.NET v4.2 released: better greylisting detection and improved control flow
  • Respect Netiquette and avoid temporary bans

March, 2011

  • Why your DNS PTR record is so important

November, 2010

  • EmailVerify.NET v4.1.10.813 released
  • Yahoo! mailboxes validation in EmailVerify.NET v4.1

September, 2010

  • EmailVerify.NET v4.0 has been released

Products
  • EmailVerify for .NET
    • Features
    • Online demo
    • Download
    • Licensing / editions
    • Release notes
    • Purchase
  • ProxyClient for .NET
    • Download
    • Licensing / editions
    • Release notes
    • Purchase
  • MVC Extensions
    • Tutorial
    • Free edition download
    • Licensing
    • Release notes
    • Purchase
Support
  • Knowledge base
  • Request support

About Cobisi
  • The company
  • Mission
  • Follow us
  • Contact us
Copyright © 2005-2022 Cobisi Research. All rights reserved.
Cobisi Research - Via Della Costituzione, 31 - 35010, Vigonza - Italy (European Union)
VAT ID: IT04391160282