henrique-borba / php-sieve-manager
一个现代的(始于2022年)PHP库,用于管理Sieve协议(RFC5804),以创建/编辑Sieve脚本(RFC5228)。被Cypht Webmail使用。
v1.0.8
2024-08-29 06:33 UTC
Requires
- php: >=5.4
README
一个现代的(始于2022年)PHP库,用于管理Sieve协议(RFC5804),以创建/编辑Sieve脚本(RFC5228)。被Cypht Webmail使用,并通过https://packagist.org.cn/packages/henrique-borba/php-sieve-manager对所有PHP项目开放。
Tiki Wiki CMS Groupware集成了Cypht Webmail,并且扩展了Sieve协议所能实现的功能。
如何使用
连接到ManageSieve
require_once "vendor/autoload.php"; $client = new \PhpSieveManager\ManageSieve\Client("localhost", 4190); $client->connect("test@localhost", "mypass", false, "", "PLAIN"); $client->listScripts();
生成Sieve脚本
$filter = \PhpSieveManager\Filters\FilterFactory::create('MaxFileSize'); $criteria = \PhpSieveManager\Filters\FilterCriteria::if('body')->contains('"test"'); // Messages bigger than 2MB will be rejected with an error message $size_condition = new \PhpSieveManager\Filters\Condition( "Messages bigger than 2MB will be rejected with an error message", $criteria ); $size_condition->addCriteria($criteria); $size_condition->addAction( new \PhpSieveManager\Filters\Actions\DiscardFilterAction() ); // Add the condition to the Filter $filter->setCondition($size_condition); $filter->toScript();
操作
addheader [":last"]
<field-name: string>
<value: string>
deleteheader [":index" <fieldno: number> [":last"]]
[COMPARATOR] [MATCH-TYPE]
<field-name: string>
[<value-patterns: string-list>]
notify [":from" string]
[":importance" <"1" / "2" / "3">]
[":options" string-list]
[":message" string]
[:fcc "INBOX.Sent"]
<method: string>
vacation [[":days" number] | [":seconds"]]
[":subject" string]
[":from" string]
[":addresses" string-list]
[":mime"]
[":handle" string]
<reason: string>
setflag [<variablename: string>]
<list-of-flags: string-list>
addflag [<variablename: string>]
<list-of-flags: string-list>
removeflag [<variablename: string>]
<list-of-flags: string-list>
replace [":mime"]
[":subject" string]
[":from" string]
<replacement: string>
enclose <:subject string>
<:headers string-list>
string
extracttext [MODIFIER]
[":first" number]
<varname: string>
convert <quoted-from-media-type: string>
<quoted-to-media-type: string>
<transcoding-params: string-list>
set [MODIFIER] <name: string>
<value: string>
Modifiers: ":lower" / ":upper" / ":lowerfirst" / ":upperfirst" /
":quotewildcard" / ":length"
[RFC5232] [RFC3894] [RFC5228] [RFC5490] [RFC9042] [RFC8579]
fileinto [:mailboxid <mailboxid: string>] [:specialuse <special-use-attr: string>] [:create] [":copy"] [":flags" <list-of-flags: string-list>] <mailbox: string>
redirect [":copy"] [:notify "value"] [:ret "FULL"|"HDRS"] [":copy"] <address: string>
keep [":flags" <list-of-flags: string-list>]
discard
reject
ereject