Is there an implementable (non-theoretical) way to prove if an email address belongs to a real email account?

Is there a way to prove that a specific email address is “real”, so it refers to a really existing email account? I get a lot of registrations through emails that are valid as defined by the email template, but do not really exist. Sending to fake postal addresses costs a lot of money, since we (and others) pay for mail (100,000 items to fake postal accounts can cost you four-digit numbers per year, just to show the number). I want to check this very moment. We don’t care if the email address is disabled after 1 minute.

An ideal solution would be a single-line bash (which could be invoked with every major language).

What i have done so far:

  • Check out this 3yo-like topic , which is simply not true for the real case. I want to check if an email address exists at the time of sending the mail (to prevent costs).
  • checking if the host name is pingable.
  • checking if the email address is pingable, for example here . I tried rebuilding it into a bash script, but failed (address selection is difficult!).

What I really want:

Reliable check if the mail account exists, implemented by the middle coder, in PHP or Java. A bash is a single line or php / java library that does just that. Free or commercial.

I will provide a reward!

+4
source share
3 answers

It is called "double opt-in".

  • The user enters his email address in his registration form.
  • The user clicks the field that says "yes, please write to me."
  • You send an email to this user in the lines "Hello, this is to confirm your account. Click this link ."
  • After the link is clicked, you will have so much confirmation that you will ever receive, and you are unlikely to be a spammer or make mistakes for it.

Other such magic spells so as not to waste paid emails:

  • "using an email program that knows what the SMTP error at level 500 means," [aka, not mail() ] and removing this person from your list.
  • Bounce Handling and removing this person from your list.
  • The "unsubscribe workflow" that works and also removes that person from your list. Did I mention this should work?

If you [or anyone reading this] did not voluntarily collect your email address lists, although at least at some user level, preferring there an advanced technique that we email administrators call "pissing up the rope "where you hang the length of the rope from a high place and see how high it is directly below it.

+6
source
Email Admins

may choose to make all attempts to send “OK,” even if the address you are sending does not exist. I do this in part to make it difficult for spammers to “find out” the address in my domain.

The best practice would be to require registration via a web form with a captcha (some), which then sends a confirmation email rather than accepting a mass registration by email. (if you are not already doing this).

If you have enough history to create, you can create a blacklist of known bad email addresses for links before sending. How many of your registries are mailadmin@yourdomain.com or root@google.com ?

In my business, we locally host an SMTP server to avoid the costs associated with delivery failure in legitimate email campaigns. Otherwise, I will burn money and burst sand into the sea.

+4
source

SMTP is not intended to provide the ability to verify mailbox availability.

When delivering e-mail, the following steps are usually taken:

Check MX record of mail domain

The somebody@example.com message will check for MX records for example.com . If there are some, the highest priority will be contacted to receive mail. If it does not respond, any existing MX with lower priority will be linked.

If there is no MX record, an example.com record “A” will be searched and this IP will be connected to receive mail.

Connecting to the server specified in the MX or A record

Accesses the receiving mail server. If it exists, MIGHT mail will be delivered. SMTP requires the sending mail server to send the receiving mail address, the sending mail address, and then the mailing address itself.

The receiving mail server is trying to deliver mail to the users mailbox

This may be unsuccessful for several reasons. And the important information is that this step can take place AFTER the sending mail server received a positive response that the mail was received and the connection was terminated. Therefore, the sending mail server cannot understand that the delivery failed.

The receiving mail server will send a rejection message in this case. But this fail-safe mail is sent to the mailing address, which is designed to receive errors. This may be the original mailing address, but it may be different. In addition, the responsible mail server for rejection should not be the server that sent the original mail.

At this point, it should be pretty clear that email is indeed an asynchronous means of exchanging information with virtually no reliable built-in function.

Some methods make this possible, although they hope for minor improvements: usually sending out message failures is not a good idea. Well-configured mail servers reject mail for mailboxes that have any problems, for example, they do not exist or are full.

On the other hand, a new big black hole for mail are spam filters. Usually they are user-configured, and the mail server is happy to receive any mail for an existing mailbox, but then the spam is automatically deleted or moved to the spam folder and ignored.

In addition, there is a technology such as greylisting that responds to any attempt to deliver mail with a temporary failure state. The regular mail server will try at a later time, and eventually the greylisting timer is completed (maybe more than an hour in some settings), and a REAL delivery attempt is made with a real final rejection or acceptance. Meanwhile, the mail server hopes that it has turned on spam filters to detect new waves of spam, and greylisting really only buys some time. Any regular delivery attempt by known mail servers will be executed instantly, because successful mail delivery without spam becomes white.

After all the description of how real mail works, I think you can see that there really is no way to “simply” determine if the mail address really exists. The only thing you can do is try to determine if it exists, and if you are pleasantly told that the mailbox does not exist, because the destination mail server is refusing delivery, you can assume that you probably should not try to deliver anymore mail for this purpose.

Any other result says nothing. And you will also notice that detecting whether a mailing address exists requires you to send a catch message-22.

You really need to implement proper rollback management and delivery failure detection to remove the obvious missing email addresses. Everything else is undetectable.

+3
source

Source: https://habr.com/ru/post/1497883/


All Articles