Re: server side filter plugin problem

Paul Lesniewski <[email protected]> Fri, 7 Jun 2013 12:35:42 -0700
Newsgroups gmane.mail.squirrelmail.plugins
Message-ID <CAHog1146y18o-JXr2d4ZEXr=fxgQ5jfLy2bD4VEtj-HnHrQ-Xw@mail.gmail.com>
On Wed, Jun 5, 2013 at 8:20 PM, Bu Xiaobing <[email protected]> wrote:
> On 2013-6-5 0:48, Paul Lesniewski wrote:
>> On Tue, Jun 4, 2013 at 4:35 AM, Bu Xiaobing <[email protected]> wrote:
>>> Hi all,
>>>
>>> I want to use the server_side_filters plugin to do the procmail filter in the server side.
>>>
>>> version list:
>>> squirrelmail-webmail-1.4.22
>>> server_settings_backend-2.0-1.4.0.tar.gz
>>> server_side_filters-2.0beta1-1.4.0.tar.gz
>>> compatibility-2.0.16-1.0.tar.gz
>>>
>>> And I have enabled the server_side_filters throw config/conf.pl script.
>>
>> You need to show configuration files/snippets.
>>
>>> Plugins
>>>    Installed Plugins
>>>      1. server_side_filters
>>>
>>>    Available Plugins:
>>>      2. administrator
>>>
>>>
>>> When I use "Options" -> "Message Filters" in my web browser, after add some filter rules, and click the SAVE button, it says "Error: Error deleting file or directory"
>>>
>>> And in my /var/log/httpd/ssl_error_log:
>>>
>>> PHP Warning:  unlink(/): \xca\xc7\xd2\xbb\xb8\xf6\xc4\xbf\xc2\xbc in /var/www/html/webmail/functions/global.php on line 278, referer: https://mymailserver.com/webmail/plugins/server_side_filters/options.php
>>
>> This is a warning, not an error.  You should provide the complete log
>> information for whatever has happened.  You may need to look in a
>> different log file or increase your PHP log settings.  You also might
>> try using only ASCII characters in your filters to start with.
>>
>>> Here is the global.php function:
>>>
>>>     275 function sq_call_function_suppress_errors($function, $args=array()) {
>>>      276    $display_errors = ini_get('display_errors');
>>>      277    ini_set('display_errors', '0');
>>>      278    $ret = call_user_func_array($function, $args);
>>>      279    ini_set('display_errors', $display_errors);
>>>      280    return $ret;
>>>      281 }
>>> Anyone can give me some advice?
>
> I have enabled another plugin: server_side_filters_procmail, and below lists all the parameters I changed:
>
> server_side_filters_procmail/config.php
> $use_maildirs = 0;

Your system uses mbox?

> $filter_rules_storage_info = array(
>     'BACKEND'               => 'local_file',
>     'ACCESS_TYPE'           => array('VALUE' => 'PHP'),

Per the documentation, if you are using PHP to access users' files in
their home directories, does the web server really have write access
to those files/directories?

>     'FILE' => array('VALUE_REPLACE' => '/tmp/%u/.mailfilter'),

Presumably this is for testing, because it isn't matching what your
requirements are per below.  What version of Server Settings Backend
are you using?  Presumably, version 2.0.  The example configuration in
the filters plugin is out of sync.  Please change %u to %1 and see
what you get.  (Note in the future, if you upgrade Server Settings
Backend, you will need to come back to this and change it to %u
again.)

>     'PARSE_PATTERN'         => array('VALUE' => "/^(.*)$/s"),
>     'PATTERN_GROUP_NUMBER'  => array('VALUE' => 1),
>     'NEW_SETTING_TEMPLATE'  => array('VALUE' => '%n'),
>     'DELETE_WHEN_EMPTY'     => array('VALUE' => 1),
>     'TREAT_AS_EMPTY_WHEN_NOT_FOUND' => array('VALUE' => 1),
> );
>
> When add one filter rule and click SAVE, it said "ERROR:Could not write to file "/" "
> Here is the ssl_error_log I have config the log level as http://www.squirrelmail.org/docs/admin/admin-12.html#errormessages said.
>
> [Thu Jun 06 10:57:50 2013] [error] [client 192.168.66.6] PHP Notice:  Uninitialized string offset: -1 in /var/www/html/webmail/plugins/server_side_filters_procmail/functions.php on line 255, referer: https://mymailserver.com/webmail/plugins/server_side_filters/options.php
> [Thu Jun 06 10:57:50 2013] [error] [client 192.168.66.6] PHP Warning:  strpos(): Empty delimiter in /var/www/html/webmail/plugins/server_side_filters_procmail/functions.php on line 257, referer: https://mymailserver.com/webmail/plugins/server_side_filters/options.php

This is a minor issue you have discovered because your
$default_folder_prefix (in the main SM config.php) is presumably
empty.  I have a fix for that, but this isn't going to matter to you
(code will still execute the same).

> [Thu Jun 06 10:57:50 2013] [error] [client 192.168.66.6] PHP Warning:  file_put_contents(/): failed to open stream: Is a directory in /var/www/html/webmail/functions/global.php on line 278, referer: https://mymailserver.com/webmail/plugins/server_side_filters/options.php

This appears to be the main problem.  See above for the fix.

> Are there some configuration guide? or some examples? My purpose is to use plugins to configure /home/%u/.procmailrc file as procmail command do.

As is mentioned several times in the documentation and configuration
files, there is ample documentation and information in the Server
Settings Backend plugin.  More general examples for configuring it can
also be found in the Server Settings plugin.

-- 
Paul Lesniewski
SquirrelMail Team
Please support Open Source Software by donating to SquirrelMail!
http://squirrelmail.org/donate_paul_lesniewski.php

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
-----
squirrelmail-plugins mailing list
Posting guidelines: http://squirrelmail.org/postingguidelines
List address: [email protected]
List archives: http://news.gmane.org/gmane.mail.squirrelmail.plugins
List info (subscribe/unsubscribe/change options): https://lists.sourceforge.net/lists/listinfo/squirrelmail-plugins