sieve vacation to an alias group

Yassine Chaouche a.chaouche at algerian-radio.dz
Sun Mar 10 10:13:16 EET 2019


On 3/10/19 9:07 AM, Yassine Chaouche via dovecot wrote:
>
> On 3/9/19 12:41 PM, Monis Monther via dovecot wrote:
>
>> Hi,
>>
>> We have an alias group named xyz at example.com 
>> <mailto:xyz at example.com>, this alias group has 3 actual users 
>> a at example.com <mailto:a at example.com>, b at example.com 
>> <mailto:b at example.com> and c at example.com <mailto:c at example.com>
>>
>> We set vacation rule on the generic sieve rule, the problem is that 3 
>> responses are sent to the original sender. (obviously because the 
>> rule is being executed with each user in the alias group)
>>
>> Is it possible to set auto response only once, we tried the ( :days 
>> 1) option but still all 3 respond back.
>>
>> How can such a setup be achieved. (Single auto response to an alias 
>> group)
>>
>> CentOS 7.5
>> dovecot-pigeonhole-2.3.4.1-1.x86_64
>> dovecot-2.3.4.1-1.x86_64
>> postfix 2.10-1
>>
>>
>> -- 
>> Best Regards
>> Monis
>
> Hello Monis,
>
> As a workaround, you can turn xyz at example.com into an actual mailbox 
> and give a at example.com, b at example.com and c at example.com read-only 
> shared folder access.
>
> Yassine.
>

As a request for comments and improvements, here's a my script to share 
folders via acl files and symlinks (dovecot must be configured 
accordingly) :

root at messagerie[10.10.10.19] /usr/local/scripts/mail # cat 
sharemailbox.single
#!/bin/bash

function create_link {
     l_src=$1
     l_dst=$2
     l_maildir=$3
     t_maildir=$(echo "$3" | tr . ․)
     t_dst="$l_dst"/.shared."$t_maildir"
     echo pointing "$t_dst" to "$l_src"
     echo ln -s "$l_src/" "$t_dst"
     ln -s "$l_src/" "$t_dst"

}


function verifier_email {
     l_email=$1
     if ! searchmailbox.strict.sql $l_email > /dev/null
     then
         echo "l'utilisateur $l_email n'a pas pu être trouvé dans la 
base de données." >&2
         return 1
     fi
     return 0
}

function set_acl {
     l_maildir=$1
     l_email=$2
     echo "giving $l_email access to $l_maildir"
     if [ ! -d $l_maildir ]
     then
         #.Sent isn't there yet.
         return
     fi
     acl_file="$l_maildir/dovecot-acl"
     echo "echo user=$l_email lr >> $acl_file"
     echo user="$l_email" lr >> "$acl_file"
     chown vmail:vmail "$acl_file"
}


if [ "$#" -lt 2 ]
then
     echo "usage : $0 partage at domain.com user1 at domain.com 
user2 at domain.com ... "
     exit 1
fi

email="$1"
inbox="${email%@*}"
domain="${email#*@}"
src="/var/vmail/$domain/$inbox"
if ! verifier_email "$email"
then
     echo "exit at 1"
     exit 1
fi


shift
for share_email in $@
do
     if ! verifier_email $share_email
     then
         continue
     fi
     share_inbox="${share_email%@*}"
     share_domain="${share_email#*@}"
     share_maildir=/var/vmail/"$share_domain"/"$share_inbox"
     #echo grep "$share_email" "$src"/dovecot-acl
     if grep "$share_email" "$src"/dovecot-acl > /dev/null 2>&1
     then
         # then is executed when exit status is 0
         # exist status is 0 when there is a match
         echo "$share_email" has already access to "$email"
     else
         set_acl $src $share_email
         create_link $src $share_maildir $inbox
     fi
done
root at messagerie[10.10.10.19] /usr/local/scripts/mail #

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20190310/1d3c4a07/attachment-0001.html>


More information about the dovecot mailing list