lycheeverse / lychee-action

Github action to check for broken links in Markdown, HTML, and text files using lychee, a fast link checker written in Rust.
https://lychee.cli.rs
Apache License 2.0
317 stars 44 forks source link

Failed: Unreachable mail address (.dev domain) #152

Closed abordage closed 2 years ago

abordage commented 2 years ago

After Bump lycheeverse/lychee-action from 1.5.0 to 1.5.1 my email address on the .dev is now being detected as invalid

image

https://github.com/abordage/nova-total-card/actions/runs/2772371237

mre commented 2 years ago

Hey there, we use https://github.com/reacherhq/check-if-email-exists for email checking. You can test your mail address through their online playground on the homepage: https://reacher.email/. There's even a nice curl example.

What I'm getting is this:

 curl -X POST \
  'https://api.reacher.email/v0/check_email' \
  -H 'content-type: application/json' \
  -H 'authorization: test_api_token' \
  -d '{
  "to_email": "box@abordage.dev"
}'
{
  "input": "box@abordage.dev",
  "is_reachable": "unknown",
  "misc": {
    "is_disposable": false,
    "is_role_account": false
  },
  "mx": {
    "accepts_mail": true,
    "records": [
      "mx.zoho.eu.",
      "mx3.zoho.eu.",
      "mx2.zoho.eu."
    ]
  },
  "smtp": {
    "error": {
      "type": "SmtpError",
      "message": "transient: 4.7.23 Sender's SPF Policy Failure"
    }
  },
  "syntax": {
    "address": "box@abordage.dev",
    "domain": "abordage.dev",
    "is_valid_syntax": true,
    "username": "box"
  }
}

The errror is transient: 4.7.23 Sender's SPF Policy Failure. I can see you're using zoho mail. Here is their explanation: https://help.zoho.com/portal/en/community/topic/451-4-7-23-sender-s-spf-policy-failure

Specifically

If you do not want to reject such emails, you may also change the Spam Control options for SPF from Temporary Reject to Quarantine by referring to the steps below:

Login to mail.zoho.com as Super Admin Go to Control Panel -> Spam Control SPF Fail/Soft Fail -> Choose Quarantine

Hope that helps. Otherwise you'd have to open an issue at https://github.com/reacherhq/check-if-email-exists to resolve the issue.

abordage commented 2 years ago

Thanks for the detailed answer! Even after temporarily disabling the SPF Policy, the reacher.email service cannot properly evaluate the email.

"smtp": {
    "error": {
      "type": "SmtpError",
      "message": "permanent: 5.7.1 Email cannot be delivered. Reason: Email detected as Spam by spam filters. "
    }
  }

Maybe they got banned or something like that. And this is a question of the appropriateness of using their report.

UPD: They are under DNSBL filters. After disabling DNSBL Verification, their report is correct:

"mx": {
    "accepts_mail": true,
    "records": [
      "mx.zoho.eu.",
      "mx3.zoho.eu.",
      "mx2.zoho.eu."
    ]
  },
  "smtp": {
    "can_connect_smtp": true,
    "has_full_inbox": false,
    "is_catch_all": true,
    "is_deliverable": true,
    "is_disabled": false
  },
mre commented 2 years ago

Good to know. Not much we can do here I guess. You can disable the email check or keep disabling DNSBL verification but I don't know if that's a good idea. In any case, I guess we can close this. Perhaps we want to add an entry to lychee's troubleshooting section about the limitation. I'd be thankful for a PR.