What the hell is wrong with this site not allowing email addresses or URLs?!? Why oh why?!? How can you ask a question about sendmail without email addresses or references?!?
------ Post updated at 08:51 PM ------
Upping my post count...
What the hell is wrong with this site not allowing email addresses or URLs?!? Why oh why?!? How can you ask a question about sendmail without email addresses or references?!?
------ Post updated at 08:56 PM ------
One more!
------ Post updated at 08:56 PM ------
What the hell is wrong with this site not allowing email addresses or URLs?!? Why oh why?!? How can you ask a question about sendmail without email addresses or references?!?
------ Post updated at 08:57 PM ------
Another reply...
------ Post updated at 08:58 PM ------
Why isn't this upping my post count?
------ Post updated at 09:00 PM ------
More craziness. It seems that sendmail/virtusertable on Solaris does not act like sendmail/virtusertable on other systems. Specifically it never matches a "@domain" LHS and does not expand %1 to the username. I've seen many pages on the Internet say that if you have something like "@example.com %1@my-isp.com" then an email address such as user@example.com would be translated to user@my-isp.com. But this doesn't happen.
Looking at Sendmail 8.12.3 cf/README - Features I read:
virtusertable A domain-specific form of aliasing, allowing multiple virtual domains to be hosted on one machine. For example, if the virtuser table contained:info@foo.com foo-info info@bar.com bar-info joe@bar.com error:nouser 550 No such user here jax@bar.com error:5.7.0:550 Address invalid @baz.org jane@example.net then mail addressed to info@foo.com will be sent to the address foo-info, mail addressed to info@bar.com will be delivered to bar-info, and mail addressed to anyone@baz.org will be sent to jane@example.net, mail to joe!bar.com will be rejected with the specified error message, and mail to jax@bar.com will also have a RFC 1893 compliant error code 5.7.0.
The username from the original address is passed as %1 allowing:
@foo.org %1@example.com meaning someone@foo.org will be sent to someone@example.com.
I've configured my virtusertable largely like the above:
info@foo.com foo-info
info@bar.com bar-info
joe@bar.com error:nouser 550 No such user here
jax@bar.com error:5.7.0:550 Address invalid
foobar@foo.com %1@foobar.com
@baz.org jane@example.net
Next I ran sendmail -bt to test these entries:
sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> /map virtuser info@foo.com
map_lookup: virtuser (info@foo.com) returns foo-info (0)
> /map virtuser info@bar.com
map_lookup: virtuser (info@bar.com) returns bar-info (0)
> /map virtuser joe@bar.com
map_lookup: virtuser (joe@bar.com) returns error:nouser 550 No such user here (0)
> /map virtuser jax@bar.com
map_lookup: virtuser (jax@bar.com) returns error:5.7.0:550 Address invalid (0)
> /map virtuser foobar@foo.com
map_lookup: virtuser (foobar@foo.com) returns @foobar.com (0)
> /map virtuser user@baz.org
map_lookup: virtuser (user@baz.org) no match (0)
>
So I am looking up stuff in /etc/mail/virtusertable (virtusertable.db?) however the last two maps failed. For foobar@foo.com the "%1" is not being expanded properly and for the user@baz.org sendmail doesn't even match. Why is this? This directly contradicts the documentation which says that "The username from the original address is passed as %1". That's not happening.