The following bug has been RESOLVED.
======================================================================
http://www.dbmail.org/mantis/bug_view_advanced_page.php?bug_id=0000159
======================================================================
Reported By: OutboundIndex
Assigned To: paul
======================================================================
Project: DBMail
Bug ID: 159
Category: general delivery
Reproducibility: always
Severity: major
Priority: normal
Status: resolved
Resolution: fixed
======================================================================
Date Submitted: 13-Jan-05 21:11 CET
Last Modified: 20-Mar-05 15:25 CET
======================================================================
Summary: alias bug: if user exists, auth_check_user is
skipped
Description:
version 2.03 debian jan 12th 2005 pkg as well as 2.02 debian pkg
postgresql version did the same for me:
Ok I have pin-pointed the issue to the extent trace=5 will show
I DELETED the alias [EMAIL PROTECTED] deliver to user 460 - [EMAIL PROTECTED]
But dbmail still delivers to that user - because dbmail seems to
initially look to see if a user exists instead of initially looking at
aliases.
I go to gmail and send an email addressed to [EMAIL PROTECTED]
If userid [EMAIL PROTECTED] exists, dbmail never tries to look for aliases
at all. (Yes, our userid's are actual full email addresses since we host
many domains.)
Jan 13 13:33:01 crunch-a dbmail/smtp[8365]: dbpgsql.c,db_query:
executing query [SELECT user_idnr FROM dbmail_users WHERE
userid='[EMAIL PROTECTED]']
(found one so why bother looking for aliases? - it isn't bothering)
Jan 13 13:33:01 crunch-a dbmail/smtp[8365]: dsn.c, dsnuser_resolve:
added user [EMAIL PROTECTED] id [460] to delivery list
Jan 13 13:33:01 crunch-a dbmail/smtp[8365]: dbpgsql.c,db_query:
executing query [INSERT INTO dbmail_messageblks (is_header, messageblk,
blocks ETC the message is delivered just to that one user and that's it.
Then I rename the userid [EMAIL PROTECTED] in dbmail_users just to eliminate
it, make it impossible for dbmail to find it. I send again from gmail to
[EMAIL PROTECTED] This time dbmail apparently says "ok there's no user by
that name so let me look up aliases for that name" - and finally after
days of frustration - it delivers to the aliases as one would expect:
Jan 13 13:39:03 crunch-a dbmail/smtp[9205]: dbpgsql.c,db_query:
executing query [SELECT user_idnr FROM dbmail_users WHERE
userid='[EMAIL PROTECTED]']
(no result found, so it then checks for aliases)
Jan 13 13:39:03 crunch-a dbmail/smtp[9205]:
authsql.c,auth_check_user_ext: checking user [EMAIL PROTECTED] in alias
table
Jan 13 13:39:03 crunch-a dbmail/smtp[9205]: dbpgsql.c,db_query:
executing query [SELECT deliver_to FROM dbmail_aliases WHERE
lower(alias) = lower('[EMAIL PROTECTED]')]
Jan 13 13:39:03 crunch-a dbmail/smtp[9205]:
authsql.c,auth_check_user_ext: checking user [EMAIL PROTECTED] to
[EMAIL PROTECTED]
Jan 13 13:39:03 crunch-a dbmail/smtp[9205]:
authsql.c,auth_check_user_ext: checking user [EMAIL PROTECTED] to
[EMAIL PROTECTED]
Jan 13 13:39:03 crunch-a dbmail/smtp[9205]: dsn.c, dsnuser_resolve: user
[EMAIL PROTECTED] found total of [2] aliases
It appears to me that we have gone from the old situation as I
understood it:
"you must create an alias for every user even if the alias and the user
are named the same"
to
"you'll never get mail at the deliver-to for any alias which is named
the same as a userid in dbmail_users"
The latter will cause my customers some dramatic problems - I don't even
see any work around I can do right now for them, if they need to receive
mail for a user account which is the addressee AND share that mail also
with a few others.
It does of course make a lot of sense not to force us to carry an alias
named the same for every userid when the userid is already an email
address....
- April
======================================================================
----------------------------------------------------------------------
aaron - 14-Jan-05 01:59 CET
----------------------------------------------------------------------
Oh my, I didn't consider that side of the situation. In DBMail 1.x, the
alias must always exist, even if the username is a full email address. A
number of people running such sites complained, and indeed it does seem
silly. So I made delivery check the users table first -- and not the
aliases table at all if it sees something.
The change that we'd need is to check the aliases table, too, and abide by
it if the delivery address is a forward.
I'll repost this on the mailing list, too -- but are there any semantics
that would be ruined if we changed from:
if (address is username)
put username on delivery list
else
if (address has aliases)
resolve aliases into deliveries and forwards
To:
if (address has aliases)
resolve aliases into deliveries and forwards
else
if (address is username)
put username on delivery list
----------------------------------------------------------------------
aaron - 16-Jan-05 21:06 CET
----------------------------------------------------------------------
This patch changes the behavior to:
if (address has aliases)
resolve aliases
else if (address is username)
deliver to username
else if (address matches domain catch-all)
deliver to domain-user
else
error and bounce
----------------------------------------------------------------------
aaron - 20-Jan-05 13:18 CET
----------------------------------------------------------------------
Patch goes into dbmail_2_0_branch. Needs to go into HEAD, too, huh?
----------------------------------------------------------------------
aaron - 10-Mar-05 03:03 CET
----------------------------------------------------------------------
Paul, could you work this into the trunk please?
----------------------------------------------------------------------
paul - 20-Mar-05 15:25 CET
----------------------------------------------------------------------
patch applied clean to trunk. I'm closing this bug now.
Bug History
Date Modified Username Field Change
======================================================================
13-Jan-05 21:11OutboundIndex New Bug
14-Jan-05 01:59aaron Bugnote Added: 0000533
16-Jan-05 21:06aaron File Added: dsn.patch
16-Jan-05 21:06aaron Bugnote Added: 0000538
20-Jan-05 13:18aaron Bugnote Added: 0000562
10-Mar-05 03:03aaron Bugnote Added: 0000598
20-Mar-05 15:25paul Bugnote Added: 0000624
20-Mar-05 15:25paul Assigned To => paul
20-Mar-05 15:25paul Resolution open => fixed
20-Mar-05 15:25paul Status new => resolved
======================================================================