in reply to Mail::CheckUser inconsistent results

Q3. Can you suggest a better way of doing this check? (Basically I want to at least check the syntax of the address and that the domain exists, and I want a result within a second.)

Maybe you're already doing that, but in case not: Definitely cache the result. I recommend this because it's very likely that a) the senders are regularly mailing to the roughly same recipients b) the validity of a recipient is probably quite static. It doesn't really make sense to check if an email address is valid multiple times a day.

You could then use this list of 'probably valid' email addresses and try to actually talk to the receiving mail server and see if it would accept an email with this recipient (no need to actually send the mail - you can abort the exchange as as soon as the mail server accepts the recipient). If the address is rejected then you can update the status from 'probably valid' to 'invalid'.

  • Comment on Re: Mail::CheckUser inconsistent results

Replies are listed 'Best First'.
Re^2: Mail::CheckUser inconsistent results
by tel2 (Pilgrim) on Aug 28, 2015 at 01:58 UTC
    Thanks for your comments, Thomas.

    I don't think caching would be worthwhile in my case, because:
    1. Each address will rarely be checked. It's basically a check to make sure a subscriber's address is valid when it's entered into my database.
    2. The status of validity could change as domains disappear, etc (though this would also be rare).

    However, I'm interested in what you're saying about talking to the receiving mail server.  Are you able to point me in the right direction for that kind of coding, please?

    tel2

      However, I'm interested in what you're saying about talking to the receiving mail server. Are you able to point me in the right direction for that kind of coding, please?

      I assume that would be the SMTP option you disabled

        Oh - OK.
        Thanks again.