zytzagoo / smtp-validate-email

A PHP library for performing email addresses validation via SMTP
GNU General Public License v3.0
445 stars 156 forks source link

Yahoo email fail #37

Open newdriv opened 6 years ago

newdriv commented 6 years ago

if you check on https://email-checker.net/check with this email address: infimaxirecharge@yahoo.com then it appears to be invalid but the library returns TRUE. It appears to be a specific case with yahoo mails only. I have more eg if req

zytzagoo commented 6 years ago

Can you post the debug log output using that address that returns true?

email-checker.net doesnt say the address is invalid/non-existant, it says "UNKNOWN Invalid response from the SMTP server.", which is yahoo's protection kicking in probably, or who knows what...

Here's my debug log for testing he above address:

[2018-03-01T12:19:20.056975+0000] MX records (yahoo.com): Array
(
    [mta5.am0.yahoodns.net] => 1
    [mta7.am0.yahoodns.net] => 1
    [mta6.am0.yahoodns.net] => 1
    [yahoo.com] => 0
)

[2018-03-01T12:19:20.063030+0000] Connecting to mta5.am0.yahoodns.net:25
[2018-03-01T12:19:20.251721+0000] Connected to mta5.am0.yahoodns.net:25 successfully
[2018-03-01T12:19:20.422797+0000] <<<recv: 220 mta4294.mail.gq1.yahoo.com ESMTP ready

[2018-03-01T12:19:20.429184+0000] send>>>: EHLO xxx
[2018-03-01T12:19:20.600587+0000] <<<recv: 250-mta4294.mail.gq1.yahoo.com

[2018-03-01T12:19:20.603788+0000] <<<recv: 250-PIPELINING

[2018-03-01T12:19:20.604807+0000] <<<recv: 250-SIZE 41943040

[2018-03-01T12:19:20.605589+0000] <<<recv: 250-8BITMIME

[2018-03-01T12:19:20.608759+0000] <<<recv: 250 STARTTLS

[2018-03-01T12:19:20.609700+0000] send>>>: MAIL FROM:<xxx>
[2018-03-01T12:19:20.792067+0000] <<<recv: 250 sender <xxx> ok

[2018-03-01T12:19:20.792586+0000] send>>>: NOOP
[2018-03-01T12:19:20.964398+0000] <<<recv: 250 OK

[2018-03-01T12:19:20.964920+0000] send>>>: NOOP
[2018-03-01T12:19:21.135991+0000] <<<recv: 250 OK

[2018-03-01T12:19:21.136697+0000] send>>>: RCPT TO:<infimaxirecharge@yahoo.com>
[2018-03-01T12:19:21.308934+0000] <<<recv: 250 recipient <infimaxirecharge@yahoo.com> ok

[2018-03-01T12:19:21.309919+0000] send>>>: NOOP
[2018-03-01T12:19:21.482985+0000] <<<recv: 250 OK

[2018-03-01T12:19:21.483892+0000] send>>>: RSET
[2018-03-01T12:19:21.655252+0000] <<<recv: 250 reset ok

[2018-03-01T12:19:21.656207+0000] send>>>: QUIT
[2018-03-01T12:19:21.827247+0000] <<<recv: 221 mta4294.mail.gq1.yahoo.com

[2018-03-01T12:19:21.828231+0000] Closing socket to mta5.am0.yahoodns.net:25
.../test-issue-37.php:17:
array(2) {
  'infimaxirecharge@yahoo.com' =>
  bool(true)
  'domains' =>
  array(1) {
    'yahoo.com' =>
    array(2) {
      'users' =>
      array(1) {
        ...
      }
      'mxs' =>
      array(4) {
        ...
      }
    }
  }
}

So, yahoo server says the recipient exists (if yahoo server is lying to protect it's customers, there's not much this library will be able to do about it) -- everything else is out of scope.

zytzagoo commented 6 years ago

Some theoretically related reading is in the other open issues, you might want to go read through those...