Closed vijaydwivedics closed 5 years ago
as the library lacks of examples it would be great if you can share how you accomplished your result. thanks
$name = "test";
$index = mt_rand(1, 100);
$header = "Received";
$part = "";
$comparison = "contains";
$value = "is,0,6";
$value1 = "test@test.com";
$where = null;
$date = null;
$time = null;
$method = "not_contains";
$size = null;
$folder = null;
$flag = "read";
$tag = "mark";
$address = "test@test.com";
$content = null;
$max = null;
$subject = null;
$headers = null;
$addressBookTest = new \Zimbra\Mail\Struct\AddressBookTest($index, $header, true);
$addressTest = new \Zimbra\Mail\Struct\AddressTest($index, $header, $part, $comparison, $value, true, true);
$attachmentTest = new \Zimbra\Mail\Struct\AttachmentTest($index, true);
$bodyTest = new \Zimbra\Mail\Struct\BodyTest($index, $value1, true, true);
$bulkTest = new \Zimbra\Mail\Struct\BulkTest($index, true);
$contactRankingTest = new \Zimbra\Mail\Struct\ContactRankingTest($index, $header, true);
$conversationTest = new \Zimbra\Mail\Struct\ConversationTest($index, $where, false);
$currentDayOfWeekTest = new \Zimbra\Mail\Struct\CurrentDayOfWeekTest($index, $value, true);
$currentTimeTest = new \Zimbra\Mail\Struct\CurrentTimeTest($index, $comparison, $time, true);
$dateTest = new \Zimbra\Mail\Struct\DateTest($index, $comparison, $date, true);
$facebookTest = new \Zimbra\Mail\Struct\FacebookTest($index, true);
$flaggedTest = new \Zimbra\Mail\Struct\FlaggedTest($index, $flag, true);
$headerExistsTest = new \Zimbra\Mail\Struct\HeaderExistsTest($index, $header, true);
$headerTest = new \Zimbra\Mail\Struct\HeaderTest($index, $header, $comparison, $value, true, true);
$importanceTest = new \Zimbra\Mail\Struct\ImportanceTest($index, Importance::HIGH(), true);
$inviteTest = new \Zimbra\Mail\Struct\InviteTest($index, [$method], true);
$linkedinTest = new \Zimbra\Mail\Struct\LinkedInTest($index, true);
$listTest = new \Zimbra\Mail\Struct\ListTest($index, true);
$meTest = new \Zimbra\Mail\Struct\MeTest($index, $header, true);
$mimeHeaderTest = new \Zimbra\Mail\Struct\MimeHeaderTest($index, $header, $comparison, $value, true, true);
$sizeTest = new \Zimbra\Mail\Struct\SizeTest($index, $comparison, $size, true);
$socialcastTest = new \Zimbra\Mail\Struct\SocialcastTest($index, true);
$trueTest = new \Zimbra\Mail\Struct\TrueTest($index, true);
$twitterTest = new \Zimbra\Mail\Struct\TwitterTest($index, true);
$tests = [
$addressBookTest,
$addressTest,
$attachmentTest,
$bodyTest,
$bulkTest,
$contactRankingTest,
$conversationTest,
$currentDayOfWeekTest,
$currentTimeTest,
$dateTest,
$facebookTest,
$flaggedTest,
$headerExistsTest,
$headerTest,
$importanceTest,
$inviteTest,
$linkedinTest,
$listTest,
$meTest,
$mimeHeaderTest,
$sizeTest,
$socialcastTest,
$trueTest,
$twitterTest
];
Here you don't need to use all for example, I need only to filter "header" so i am using $tests = [ $headerTest ];
{conditions}: address "comma-separated-header-names" all|localpart|domain is|not_is|contains|not_contains|matches|not_matches [case_sensitive] "value" addressbook in|not_in "header-name" attachment exists|not_exists body contains|not_contains [case_sensitive] "text" bulk [not] conversation where|not_where started|participated current_day_of_week is|not_is "comma-separated-days(0=Sun,6=Sat)" current_time before|not_before|after|not_after "HHmm" date before|not_before|after|not_after "YYYYMMDD" facebook [not] flagged [not] "flag" header "comma-separated-names" is|not_is|contains|not_contains|matches|not_matches [case_sensitive] "value" header "comma-separated-names" exists|not_exists importance is|not_is high|normal|low invite exists|not_exists linkedin [not] list [not] me in|not_in "header-name" mime_header "name" is|not_is|contains|not_contains|matches|not_matches [case_sensitive] "value" ranking in|not_in "header-name" size under|not_under|over|not_over "1|1K|1M" socialcast [not] twitter [not] {/conditions}
$filterTests = new \Zimbra\Mail\Struct\FilterTests(FilterCondition::ANY_OF(), $tests);
$actionKeep = new \Zimbra\Mail\Struct\KeepAction($index);
$actionDiscard = new \Zimbra\Mail\Struct\DiscardAction($index);
$actionFileInto = new \Zimbra\Mail\Struct\FileIntoAction($index, $folder);
$actionFlag = new \Zimbra\Mail\Struct\FlagAction($index, $flag);
$actionTag = new \Zimbra\Mail\Struct\TagAction($index, $tag);
$actionRedirect = new \Zimbra\Mail\Struct\RedirectAction($index, $address);
$actionReply = new \Zimbra\Mail\Struct\ReplyAction($index, $content);
$actionNotify = new \Zimbra\Mail\Struct\NotifyAction($index, $content, $address, $subject, $max, $headers);
$actionStop = new \Zimbra\Mail\Struct\StopAction($index);
$actions = [
$actionKeep,
$actionDiscard,
$actionFileInto,
$actionFlag,
$actionTag,
$actionRedirect,
$actionReply,
$actionNotify,
$actionStop
];
Same is here you need only use which action you need on filter Example : here i need only 3 action flag, redirect, and stop $actions = [ $actionFlag, $actionRedirect, $actionStop ];
$filterActions = new \Zimbra\Mail\Struct\FilterActions($actions);
$filterRule = new \Zimbra\Mail\Struct\FilterRule($name, true, $filterTests, $filterActions);
$filterRules = new \Zimbra\Mail\Struct\FilterRules([$filterRule]);
$resp = $api->modifyFilterRules($filterRules, "add filter rule");
To find error must use try{}catch(e){}
Hello everyone, here i am facing a problem on Zimbra API, here i want to add filter rule, but am nothing found any documentation related to this.