Quote:
Originally Posted by unSpawn
In short: a good design and use of common sense should prevail over applying kludges, bandaids or workarounds and reasoning the other way around. Your MTA should not be the place to validate data entered by users but your PHP application:
|
I agree completely, however other business priorities which have the developers on a schedule (and good development practices, which mean new features have to be worked into that schedule via a plan) preclude me from diverting them for this enhancement for at least 4 weeks and possibly longer. As such, a temporary workaround was what I was looking for in the interim, until this can be addressed at the user input level.
I am aware that the "kludge" would not catch everything - I was looking to rewrite the small percentage of commonly known bad addresses that result in 80% of the soft bounces.
As for the previous poster, who suggested Virtusertable, I have tried that without success. I wonder if it is intended for inbound mail to domains mapped to the current box - not for outbound mail intended for a non-local domain. I put in the entries as specified and a sendmail -bt produces the following (as you can see, it does not result in a transformed address, and it does not seem to use virtusertable, even though the feature is enabled in the sendmail.mc file (and compiled to sendmail.cf)):
# sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0
someemail@yagoo.com
canonify input: someemail @ yagoo . com
Canonify2 input: someemail < @ yagoo . com >
yagoo.com: Name server timeout
Canonify2 returns: someemail < @ yagoo . com >
canonify returns: someemail < @ yagoo . com >
== Ruleset 3,0 (3) status 75
parse input: someemail < @ yagoo . com >
Parse0 input: someemail < @ yagoo . com >
Parse0 returns: someemail < @ yagoo . com >
ParseLocal input: someemail < @ yagoo . com >
ParseLocal returns: someemail < @ yagoo . com >
Parse1 input: someemail < @ yagoo . com >
Mailertable input: < yagoo . com > someemail < @ yagoo . com >
Mailertable input: yagoo . < com > someemail < @ yagoo . com >
Mailertable returns: someemail < @ yagoo . com >
Mailertable returns: someemail < @ yagoo . com >
MailerToTriple input: < > someemail < @ yagoo . com >
MailerToTriple returns: someemail < @ yagoo . com >
Parse1 returns: $# esmtp $@ yagoo . com $: someemail < @ yagoo . com >
parse returns: $# esmtp $@ yagoo . com $: someemail < @ yagoo . com >
Then again, perhaps I am testing it against the wrong ruleset?
-C.