1 (edited by soapee01 2013-11-01 03:57:18)

Topic: delimiter and subfolder delivery

======== Required information ====
- iRedMail version: iRedMail-0.8.1
- Store mail accounts in which backend: LDAP
- Linux/BSD distribution name and version: Ubuntu 12.04LTS
====

Hi,

Since the change to dovecot 2, delimiters started delivering to subfolders instead of the inbox.  Is there a way to change this behavior?

Relevant info:
# postconf |grep recipient_delimiter
forward_path = $home/.forward${recipient_delimiter}${extension}, $home/.forward
recipient_delimiter = .

# dovecot -a |grep recipient_delimiter
recipient_delimiter = .
   ^^^ added to dovecot.conf


=========
sieve.log
=========
Oct 31 13:29:34 lda: Debug: Loading modules from directory: /usr/lib/dovecot/modules
Oct 31 13:29:34 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so
Oct 31 13:29:34 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib20_autocreate_plugin.so
Oct 31 13:29:34 lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so
Oct 31 13:29:34 lda: Debug: auth input: user@acme.com home=/home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39/ quota_rule=*:bytes=1048576000 mail=maildir:~/Maildir/
Oct 31 13:29:34 lda: Debug: Added userdb setting: plugin/quota_rule=*:bytes=1048576000
Oct 31 13:29:34 lda: Debug: Added userdb setting: mail=maildir:~/Maildir/
Oct 31 13:29:34 lda(user@acme.com): Debug: Effective uid=1001, gid=1001, home=/home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39/
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota root: name=user backend=dict args=:proxy::quotadict
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota rule: root=user mailbox=* bytes=1048576000 messages=0
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota warning: bytes=891289600 (85%) messages=0 reverse=no command=quota-warning 85 user@acme.com
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota warning: bytes=943718400 (90%) messages=0 reverse=no command=quota-warning 90 user@acme.com
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota warning: bytes=996147200 (95%) messages=0 reverse=no command=quota-warning 95 user@acme.com
Oct 31 13:29:34 lda(user@acme.com): Debug: dict quota: user=user@acme.com, uri=proxy::quotadict, noenforcing=0
Oct 31 13:29:34 lda(user@acme.com): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir/
Oct 31 13:29:34 lda(user@acme.com): Debug: maildir++: root=/home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//Maildir, index=, control=, inbox=/home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//Maildir, alt=
Oct 31 13:29:34 lda(user@acme.com): Debug: Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/Shared/%u
Oct 31 13:29:34 lda(user@acme.com): Debug: shared: root=/var/run/dovecot, index=, control=, inbox=, alt=
Oct 31 13:29:34 lda(user@acme.com): Debug: Namespace : Using permissions from /home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//Maildir: mode=0700 gid=-1
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota root: name=user backend=dict args=:proxy::quotadict
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota rule: root=user mailbox=* bytes=1073741824 messages=0
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota warning: bytes=912680550 (85%) messages=0 reverse=no command=quota-warning 85 user@acme.com
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota warning: bytes=966367641 (90%) messages=0 reverse=no command=quota-warning 90 user@acme.com
Oct 31 13:29:34 lda(user@acme.com): Debug: Quota warning: bytes=1020054732 (95%) messages=0 reverse=no command=quota-warning 95 user@acme.com
Oct 31 13:29:34 lda(user@acme.com): Debug: dict quota: user=user@acme.com, uri=proxy::quotadict, noenforcing=0
Oct 31 13:29:34 lda(user@acme.com): Debug: none: root=, index=, control=, inbox=, alt=
Oct 31 13:29:34 lda(user@acme.com): Debug: Destination address: user@acme.com (source: user@hostname)
Oct 31 13:29:34 lda(user@acme.com): Debug: sieve: using sieve path for user's script: //home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//sieve/dovecot.sieve
Oct 31 13:29:34 lda(user@acme.com): Debug: sieve: opening script //home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//sieve/dovecot.sieve
Oct 31 13:29:34 lda(user@acme.com): Debug: sieve: script binary //home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//sieve/dovecot.svbin successfully loaded
Oct 31 13:29:34 lda(user@acme.com): Debug: sieve: binary save: not saving binary //home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//sieve/dovecot.svbin, because it is already stored
Oct 31 13:29:34 lda(user@acme.com): Debug: sieve: executing script from //home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39//sieve/dovecot.svbin
Oct 31 13:29:34 lda(user@acme.com): Info: sieve: msgid=<5272A49A.4080409@somewhere.com>: stored mail into mailbox 'testme'


===========
Dovecot.log
===========
Oct 31 13:29:34 auth: Debug: master in: USER    1       user@acme.com      service=lda
Oct 31 13:29:34 auth: Debug: ldap(user@acme.com): user search: base=o=domains,dc=acme,dc=com scope=subtree filter=(&(objectClass=mailUser)(accountStatus=active)(enabledService=mail)(enabledService=lda)(|(mail=user@acme.com)(&(enabledService=shadowaddress)(shadowAddress=user@acme.com)))) fields=mail,homeDirectory,mailQuota
Oct 31 13:29:34 auth: Debug: ldap(user@acme.com): result: mail(user)=user@acme.com homeDirectory(home)=/home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39/ mailQuota(quota_rule=*:bytes=%$)=1048576000
Oct 31 13:29:34 auth: Debug: master out: USER   1       user@acme.com      home=/home/vmail/vmail1/acme.com/u/s/e/user-2013.09.13.19.05.39/   quota_rule=*:bytes=1048576000   mail=maildir:~/Maildir/


===========
mail.log
===========
Oct 31 13:29:34 agrmail postfix/smtpd[18346]: connect from localhost[127.0.0.1]
Oct 31 13:29:34 agrmail postfix/smtpd[18346]: 0DDC0C014E9D: client=localhost[127.0.0.1]
Oct 31 13:29:34 agrmail postfix/cleanup[18338]: 0DDC0C014E9D: message-id=<5272A49A.4080409@somewhere.com>
Oct 31 13:29:34 agrmail postfix/qmgr[2768]: 0DDC0C014E9D: from=<sally@somewhere.com>, size=2684, nrcpt=1 (queue active)
Oct 31 13:29:34 agrmail postfix/smtpd[18346]: disconnect from localhost[127.0.0.1]
Oct 31 13:29:34 agrmail amavis[16710]: (16710-16) Passed CLEAN, LOCAL [4.3.2.1] [4.3.2.1] <sally@somewhere.com> -> <archive@acme.com>, Message-ID: <5272A49A.4080409@somewhere.com>, mail_id: 4LQWCvZPUhAr, Hits: -101.79, size:
 2044, queued_as: 0DDC0C014E9D, 1168 ms
Oct 31 13:29:34 agrmail postfix/smtp[18339]: C5C9BC014F11: to=<archive@acme.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=2.4, delays=1.2/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued
 as 0DDC0C014E9D)
Oct 31 13:29:34 agrmail postfix/pipe[18351]: 0DDC0C014E9D: to=<archive@acme.com>, relay=dovecot, delay=0.03, delays=0/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service)
Oct 31 13:29:34 agrmail postfix/qmgr[2768]: 0DDC0C014E9D: removed
Oct 31 13:29:34 agrmail postfix/smtpd[18347]: connect from localhost[127.0.0.1]
Oct 31 13:29:34 agrmail postfix/smtpd[18347]: 38447C014E9D: client=localhost[127.0.0.1]
Oct 31 13:29:34 agrmail postfix/cleanup[18417]: 38447C014E9D: message-id=<5272A49A.4080409@somewhere.com>
Oct 31 13:29:34 agrmail postfix/smtpd[18347]: disconnect from localhost[127.0.0.1]
Oct 31 13:29:34 agrmail postfix/qmgr[2768]: 38447C014E9D: from=<sally@somewhere.com>, size=2542, nrcpt=1 (queue active)
Oct 31 13:29:34 agrmail amavis[18420]: (18420-01) Passed CLEAN, LOCAL [4.3.2.1] [4.3.2.1] <sally@somewhere.com> -> <it.testme@acme.com>, Message-ID: <5272A49A.4080409@somewhere.com>, mail_id: LygWVky+etSW, Hits: -101.79, size: 2044, queued_as: 38447C014E9D, 1340 ms
Oct 31 13:29:34 agrmail postfix/smtp[18340]: C5C9BC014F11: to=<it.testme@acme.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=2.6, delays=1.2/0/0.02/1.3, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 38447C014E9D)
Oct 31 13:29:34 agrmail postfix/qmgr[2768]: C5C9BC014F11: removed
Oct 31 13:29:34 agrmail postfix/pipe[18350]: 38447C014E9D: to=<it.testme@acme.com>, relay=dovecot, delay=0.06, delays=0.02/0.02/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service)
Oct 31 13:29:34 agrmail postfix/qmgr[2768]: 38447C014E9D: removed

----

Spider Email Archiver: On-Premises, lightweight email archiving software developed by iRedMail team. Supports Amazon S3 compatible storage and custom branding.

2

Re: delimiter and subfolder delivery

soapee01 wrote:

Since the change to dovecot 2, delimiters started delivering to subfolders instead of the inbox.  Is there a way to change this behavior?

iRedMail defines a transport in Postfix /etc/postfix/master.cf to use Dovecot LDA for local mail deliver, it looks like this:

dovecot ...
    .... -m ${extension}

You can remove '-m ${extension}', restart Postfix service and try again.

soapee01 wrote:

recipient_delimiter = .

Why? Why a non-standard delimiter? Why not use the default one ('+')? Do you know many mail addresses contains '.'?

3

Re: delimiter and subfolder delivery

ZhangHuangbin wrote:
soapee01 wrote:

Since the change to dovecot 2, delimiters started delivering to subfolders instead of the inbox.  Is there a way to change this behavior?

iRedMail defines a transport in Postfix /etc/postfix/master.cf to use Dovecot LDA for local mail deliver, it looks like this:

dovecot ...
    .... -m ${extension}

You can remove '-m ${extension}', restart Postfix service and try again.

Thanks!  I'll give that a try.

ZhangHuangbin wrote:
soapee01 wrote:

recipient_delimiter = .

Why? Why a non-standard delimiter? Why not use the default one ('+')? Do you know many mail addresses contains '.'?

On my systems I block the use of a period for the name so it's not a problem.  The reason for it is that years ago I did use the + sign; however many commercial sites were coded to not allow a + when checking for 'valid' email addresses.  The plus sign kept getting kicked back as an unallowed character which negated the usefulness of the delimiter in the first place. Hence the change to the period.  I've yet to see that not accepted, and it's helped immensely with spam.  At the very least it's easy to tell who sold my address to spammers...

Thanks again,

soap