[Dovecot] Recipient delimiters, deliver and SQL databases

Nils Vogels nivo+sender+9bb457 at is-root.com
Mon Dec 11 23:19:12 UTC 2006


Marshal Newrock wrote on 10-12-2006 9:20:
> On Sat, 09 Dec 2006 20:11:19 +0100
> Nils Vogels <nivo at is-root.com> wrote:
>
>   
>>>> Now, I am pretty sure the problem lies with the %u, expanding to
>>>> user+test at mydomain, which in some way should become user at mydomain,
>>>> since the latter is the actual mailbox name of the user, but: how?
>>>>     
>>>>         
>>> Check the postfix setting recipient_delimiter.
>>>   
>>>       
>> vm-mail# postconf recipient_delimiter
>> recipient_delimiter = +
>> vm-mail# postfix reload
>> postfix/postfix-script: refreshing the Postfix mail system
>> vm-mail#  echo "Test8" | mail user+test at mydomain
>> .. results in a bounce, since user+test at mydomain is not a valid
>> mailbox name, user at mydomain is.
>>
>> Is there any macro (such as %u) that expands to *JUST* the local user
>> part of an e-mail address ?
>>     
>
> In my system, there is a file called variables.txt
> in /usr/share/doc/dovecot.  %n should just be the user part, as %d is
> the domain part, so "%n@%d" would still be the full email address.  If
> %n would still be "user+test" (I don't know if this is the case) then
> perhaps there should be an additional modifier which strips out
> everything between a certain character and @.  Meanwhile, it's possible
> to simulate this in the query.  In MySQL, the query would be something
> like "WHERE email=CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@', '%d')"
>   
%n is 'user+test; in my testcase, and not 'user' as I would like it to
be. Would it be possible to add a variable to dovecot that only gives me
the local user part, because indeed that should solve the problem.

Probably, also a configuration item needs to be added, to make deliver
aware of the character that was chosen as recipient delimiter, since the
'+' maybe standard for postfix, but other choices could be made as well.

On a side note: the SQL query from Marshal only works if there is a
recipient delimiter present, if it is not, it adds the domain name to
the e-mail address being looked up, causing all kinds of other problems.
I haven't found a SQL query to mimic the desired deliver behaviour in
this case yet.

Greetings,

Nils

-- 
Those who desire to give up freedom in order to gain security, will not have, nor do they deserve, either one.

~Benjamin Franklin (American Statesman, Scientist, Philosopher, Printer, Writer and Inventor. 1706-1790)


More information about the dovecot mailing list