Create a rule for a user via command-line
-
Hi Robin,
Thank you for your help.
Cheers
kruemel -
Hello Forum,
python kopano-rules.py --user username --create Forward-Mail --conditions "received-from:user.name@domain" --actions "forward-to:schaden@domain"
gives me this:
Traceback (most recent call last): File "kopano-rules.py", line 837, in <module> main() File "kopano-rules.py", line 831, in main rowlist = createrule(options, lastid) File "kopano-rules.py", line 604, in createrule username = searchusername(server, tmpname) File "kopano-rules.py", line 56, in searchusername if str(user.fullname) == name: UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 4: ordinal not in range(128)
The first rule i created was successful:
python kopano-rules.py --user user --create Send-To-Schaden --conditions "received-from:user.name@domain" --actions "forward-to:schaeden@domain"
But i forward to “schaeden@”, not to “schaden@”
After that i did
python kopano-rules.py --user username --list +--------+--------------------------------------------+-----------+--------------------------------------------+---------+ | Number | Name | Condition | Action | State | +--------+--------------------------------------------+-----------+--------------------------------------------+---------+ | 1 | Kategorien der E-Mails l?schen (empfohlen) | | | Enabled | | 2 | Send-To-Schaden | | Forward message to schaeden@domain | Enabled | +--------+--------------------------------------------+-----------+--------------------------------------------+---------+ python kopano-rules.py --user username --rule 2 --state delete
tried again (with same rulename and after that with another name) but run into this error
Coffee_is_life
-
I think i fixed it :)
around line 55:
def searchusername(server, name): for user in server.users(): # if str(user.fullname) == name: if (user.fullname).encode('utf-8') == name: return user
just add the utf-8 encoding.
Now i can create rules again, but it seems the arent working…
+--------+--------------------------------------------+-----------+--------------------------------------------------+---------+ | Number | Name | Condition | Action | State | +--------+--------------------------------------------+-----------+--------------------------------------------------+---------+ | 1 | Kategorien der E-Mails l?schen (empfohlen) | | | Enabled | | 2 | ForwardSchaden | | Forward message to another.user@DOMAIN.DE | Enabled | +--------+--------------------------------------------+-----------+--------------------------------------------------+---------+
But this other user cant receive this mail… the conditikon was:
--conditions "received-from:this.user@DOMAIN.de"
The whole line was:
python kopano-rules.py --user thisuser --create ForwardSchaden --conditions "received-from:this.user@this-domain.de" --actions "forward-to:another.user@this-domain.de"
this user is currenty in holyday, should i use another condition because maybe this rule whould do something if the user actually receive this mail?
Coffee_is_life
-
OK, this rules wont wotrk but i dont know why…
i got 3 Rules already:
+--------+--------------------------------------------+-------------------------------+--------------------------------------------------+---------+ | Number | Name | Condition | Action | State | +--------+--------------------------------------------+-------------------------------+--------------------------------------------------+---------+ | 1 | Kategorien der E-Mails l?schen (empfohlen) | | | Enabled | | 2 | ForwardSchaden | | Forward message to another.user@this-domain.de | Enabled | | 3 | ForwardSchaden2 | When my name is in the To box | Forward message to another.user@this-domain.de | Enabled | | | | | | | | 4 | ForwardSchaden3 | | Forward message to another.user@this-domain.de | Enabled | +--------+--------------------------------------------+-------------------------------+--------------------------------------------------+---------+
First (index 2) is with condition: recieved-from:this.user@this-domain.de
second one (index 3) is with name-in-to:this.user@this-domain.de
the third one (index 4) is with sent-to:this.user@this-domain.deBut in dagent.log:
Wed Jun 7 08:58:47 2017: [info ] [ 2837] Delivered message to 'mailarchiv', Subject: "Test Weiterleitung die 3te", Message-Id: <kcim.5937a426.b11.391241d34aab31ff@mailserver.this-domain.de>, size 3607 Wed Jun 7 08:58:47 2017: [info ] [ 2837] Mail will be delivered in Inbox Wed Jun 7 08:58:47 2017: [info ] [ 2837] * PreDelivery processing started Wed Jun 7 08:58:47 2017: [info ] [ 2837] * PreDelivery processing done Wed Jun 7 08:58:47 2017: [info ] [ 2837] * PreRuleProcess processing started Wed Jun 7 08:58:47 2017: [info ] [ 2837] * PreRuleProcess processing done Wed Jun 7 08:58:47 2017: [info ] [ 2837] Rule Kategorien der E-Mails l?schen (empfohlen) doesn't match: 0x8004010f Wed Jun 7 08:58:47 2017: [info ] [ 2837] Rule ForwardSchaden doesn't match: 0x8004010f Wed Jun 7 08:58:47 2017: [info ] [ 2837] Rule ForwardSchaden2 doesn't match: 0x8004010f Wed Jun 7 08:58:47 2017: [info ] [ 2837] Rule ForwardSchaden3 doesn't match: 0x8004010f Wed Jun 7 08:58:47 2017: [info ] [ 2837] Starting autoresponder for out-of-office message
someone a hint?
//EDIT:
i’ve deleted the rules (they wont work anyways) and now i get this:Traceback (most recent call last): File "kopano-rules.py", line 838, in <module> main() File "kopano-rules.py", line 832, in main rowlist = createrule(options, lastid) File "kopano-rules.py", line 786, in createrule returncon = storeconditions[0] IndexError: list index out of range
cant even create rules now…
//EDIT2:if len(storeconditions) > 1: #returncon = SOrRestriction(storeconditions) returncon = SAndRestriction(storeconditions) else: print( len(storeconditions) ) - line added print(", " .join(storeconditions)) - line added returncon = storeconditions[0]
The length returns 0
the array itself doenst contain vars.Coffee_is_life
-
Hi Coffee_is_life,
Can you try the new version.
Removed the GAB check what was causing the unicode error, wasn’t needed anymore
It will now also print the condition ‘received-from’.No idea what is causing the IndexError can you add ‘print storeconditions’ before line 786
Regards,
Robin
-
i already did:
print(", " .join(storeconditions)) - line added
is prints nothing, not even a ", " - so i think its empty
length returns 0the new version works without unicode-error - check
but i recieve the IndexError aswellCoffe_is_life
-
Did you add an condition?
without --conditionspython kopano-rules.py --user user1 --create ForwardSchaden --actions "forward-to:user3@mailtje.nu" Traceback (most recent call last): File "kopano-rules.py", line 839, in <module> main() File "kopano-rules.py", line 833, in main rowlist = createrule(options, lastid) File "kopano-rules.py", line 786, in createrule returncon = storeconditions[0] IndexError: list index out of range
-
@Coffee_is_life said in Create a rule for a user via command-line:
python kopano-rules.py --user thisuser --create ForwardSchaden --conditions “received-from:this.user@this-domain.de” --actions “forward-to:another.user@this-domain.de”
python kopano-rules.py --user thisuser --create ForwardSchaden --conditions "received-from:this.user@this-domain.de" --actions "forward-to:another.user@this-domain.de"
same with sent-to, name-in-to, name-in-to-cc…
//edit
i tried with --conditions “name-in-t-cc” without an email…
Should i use the mail, name or username for this “name in to or cc”?//edit2 : ups :) should use '–condition “received-from:this.user@this-domain.de” and it works :)
had just the condition because i thought “name in to or cc” doesn’t need a name/user or mail behind it :)
my bad
///EDIT3
BUT:python kopano-rules.py --user my_username --create TEST --conditions "name-in-to-cc:my.user@this-domain.de;has-attachment" --exceptions "contain-word-sender-address:Ticketsystem" --actions "forward-to:another-user@this-domain.de"
gives:
Traceback (most recent call last): File "kopano-rules.py", line 839, in <module> main() File "kopano-rules.py", line 833, in main rowlist = createrule(options, lastid) File "kopano-rules.py", line 770, in createrule storeexceptions.append(SNotRestriction(exceptionslist[0])) IndexError: list index out of range
Coffee_is_life
-
Your are right ‘name-in-to-cc’ shouldn’t have a name /mail behind it, will fix it.
Will also check why exceptions is not working,
Can’t promise to fix it this week.
Robin
-
I’ve set the rule now via the users webapp - so dont rush it :)
feel free to text me if you need a test-subject :)
//EDIT: btw in https://stash.kopano.io/projects/KSC/repos/core-tools/browse the delete-items section has “localize-folders.py” instead of “delete-items.py”
and the “create rule with multiple conditions”-example should switch with “create rule with one condition”-example :)Coffee_is_life