Nigel Metheringham wrote:
> There are 2 possible uses for recipient callout verification:-
> * Does this recipient exist? - sender is basically irrelevant,
> result can be cached keyed on the recipient only. However
> this requires some knowledge of the recipient site's policies
> (ie will sender=<> work - there are valid cases where it may
> not) * Can this message (with this sender & recipient) be
> delivered? - sender is very relevant, caching needs to be
> based on sender/recipient tuple. This will work correctly
> whatever the recipient site policies, but will hit the
> recipient site with many more queries due to lack of caching.
> You could, of course, negatively cache senders that are
> rejected at MAIL FROM: stage, but since good practice is to
> save sender verification until later thats going to be very
> ineffective.
>
To be completely safe, it should be even more thorough that that ...
- If the final delivery ends up using ESMTP, the mail might get bounced for
its size (which admittedly is usually a temp fail, but often isn't)
- Content filtering, which may be dependent on the sender/recipient tuple,
could give 550 after DATA
... and probably some more things.
It's not an exact science - the only way the callout can say with 100%
certainty that the mail would be accepted is to send the mail....
Peter