Added tests, fixed PHP warnings

pull/24/head
Paweł Słowik 12 years ago
parent 197a3e6faf
commit 92a030d928

@ -868,13 +868,15 @@ class rcube_sieve_script
if ($method_components['scheme'] == 'mailto') { if ($method_components['scheme'] == 'mailto') {
$notify['address'] = $method_components['path']; $notify['address'] = $method_components['path'];
$method_params = array(); $method_params = array();
parse_str($method_components['query'], $method_params); if (array_key_exists('query', $method_components)) {
parse_str($method_components['query'], $method_params);
}
$method_params = array_change_key_case($method_params, CASE_LOWER); $method_params = array_change_key_case($method_params, CASE_LOWER);
/* magic_quotes_gpc and magic_quotes_sybase affect the output of parse_str */ /* magic_quotes_gpc and magic_quotes_sybase affect the output of parse_str */
if (ini_get('magic_quotes_gpc') || ini_get('magic_quotes_sybase')) { if (ini_get('magic_quotes_gpc') || ini_get('magic_quotes_sybase')) {
array_map('stripslashes', $method_params); array_map('stripslashes', $method_params);
} }
$notify['body'] = $method_params['body']; $notify['body'] = (array_key_exists('body', $method_params)) ? $method_params['body'] : '';
} }
$result[] = $notify; $result[] = $notify;

@ -0,0 +1,16 @@
require ["enotify","variables"];
if header :contains "from" "boss@example.org"
{
notify :importance "1" :message "This is probably very important" "mailto:alm@example.com";
stop;
}
if header :matches "Subject" "*"
{
set "subject" "${1}";
}
if header :matches "From" "*"
{
set "from" "${1}";
}
notify :importance "3" :message "${from}: ${subject}" "mailto:alm@example.com";

@ -0,0 +1,15 @@
require ["envelope","variables","enotify"];
if envelope :all :matches "from" "*"
{
set "env_from" " [really: ${1}]";
}
if header :matches "Subject" "*"
{
set "subject" "${1}";
}
if address :all :matches "from" "*"
{
set "from_addr" "${1}";
}
notify :message "${from_addr}${env_from}: ${subject}" "mailto:alm@example.com";
Loading…
Cancel
Save