Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| centos:mail_c6:sieve [13.03.2012 15:59. ] – [Mailfilterung mit SIEVE auf dem IMAP-Server] Überschrift angepasst django | centos:mail_c6:sieve [20.04.2018 10:44. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Mailfilterung mit SIEVE auf dem Cyrus-IMAP-Server unter CentOS 6.x ====== | ||
| + | Zur Filtern von E-Mails auf IMAP-Server wurde die Programmiersprache **SIEVE** konzipiert - die genaue Spezifikationen erfolgten hierzu im RFC 5228. Das Hauptaugenmerk von **SIEVE** liegt auf Einfachheit, | ||
| + | |||
| + | Weitere Hintergrundinformationen finden man unter anderem in dem [[http:// | ||
| + | |||
| + | ===== sieveshell ===== | ||
| + | Mit Hilf der // | ||
| + | |||
| + | Möchte man zum Beispiel automatisch generierte Nachrichten, | ||
| + | |||
| + | ==== Script erstellen ==== | ||
| + | Mit dem Editor unserer Wahl erstellen wir uns ein einfaches Textfile, mit den entsprechenden Filterregeln. So sollen Nachrichten von der Adresse // | ||
| + | |||
| + | $ vim eigene_Filterregel | ||
| + | <code bash> | ||
| + | if header :contains " | ||
| + | elsif header :contains " | ||
| + | elsif header :contains " | ||
| + | else { fileinto " | ||
| + | </ | ||
| + | |||
| + | ==== Script hochladen ==== | ||
| + | Damit wir unser selbst definiertes Script auch nutzen können, müssen wir es auf unseren IMAP-Server hochladen. Hierzu melden wir uns von unserem Nutzer-Login mittels **// | ||
| + | | ||
| + | < | ||
| + | Please enter your password: | ||
| + | > | ||
| + | </ | ||
| + | |||
| + | Nach dem Prompt der **sieveshell** können wir uns mittels des " | ||
| + | |||
| + | < | ||
| + | Usage: | ||
| + | sieveshell [-u username] [-a authname] [-r realm] < | ||
| + | |||
| + | help - this screen | ||
| + | list - list scripts on server | ||
| + | put < | ||
| + | - upload script to server | ||
| + | get < | ||
| + | - get script. if no filename display to stdout | ||
| + | delete < | ||
| + | activate < | ||
| + | deactivate | ||
| + | quit - quit | ||
| + | </ | ||
| + | |||
| + | Mittels put laden wir unser zuvor erstelle Textfile auf den Server hoch. | ||
| + | > put eigene_Filterregel | ||
| + | Mittel List bekommen wir all unsere hinterlegten Scripte anzeigen lassen. Auf dem Server können durchwegs mehrere Scripte hinterlegt sein, aber nur **__eines__** ist **aktiv**! | ||
| + | < | ||
| + | erster_Versuch | ||
| + | eigene_Filterregel | ||
| + | smartsieve | ||
| + | Mittels **activate < | ||
| + | < | ||
| + | > list | ||
| + | erster_Versuch | ||
| + | eigene_Filterregel <- active script | ||
| + | smartsieve</ | ||
| + | Dass diese Vorgehensweise, | ||
| + | ===== smart-sieve ===== | ||
| + | [[http:// | ||
| + | \\ | ||
| + | {{ : | ||
| + | \\ | ||
| + | ==== Installation ==== | ||
| + | === Paketabhängigkeiten === | ||
| + | Vor der eigentlichen Installation von **SmartSive** installieren wir noch drei notwendige PHP-Komponenten (**php-imap**, | ||
| + | # yum install php-imap php-mcrypt php-pecl-idn php-pear php-pear-Log -y | ||
| + | === Download === | ||
| + | Von der [[http:// | ||
| + | # wget http:// | ||
| + | === Installation === | ||
| + | Im nächsten Schritt machen wir uns nun an die Installation. | ||
| + | - Als erstes entpacken wir das zuvor heruntergeladene Programmarchiv.< | ||
| + | - Anschließend passen wir die User- und Gruppenberechtigungen an. < | ||
| + | - Abschließend verschieben wir noch das Archiv an Ort und Stelle, an dem es später unser Apache-Webserver abholen wird. < | ||
| + | |||
| + | ==== VHost-Definition ==== | ||
| + | Für unsere Nutzer legen wir einen eigenen V-Host an, über dessen später die Userzugriffe erfolgen sollen. Mit dem Editor unserer Wahl bearbeiten wir also unsere Apache-Konfigdatei **/ | ||
| + | # vim / | ||
| + | <code apache vhosts.conf> | ||
| + | # | ||
| + | # smartsieve.nausch.org | ||
| + | # | ||
| + | < | ||
| + | ServerAdmin webmaster@nausch.org | ||
| + | ServerName smartsieve.nausch.org: | ||
| + | ServerAlias smartsieve.nausch.org *.smartsieve.nausch.org | ||
| + | ServerPath / | ||
| + | DocumentRoot "/ | ||
| + | < | ||
| + | Options FollowSymLinks | ||
| + | AllowOverride AuthConfig | ||
| + | Order allow,deny | ||
| + | Allow from all | ||
| + | </ | ||
| + | AddType application/ | ||
| + | DirectoryIndex index.php | ||
| + | ErrorLog logs/ | ||
| + | CustomLog logs/ | ||
| + | </ | ||
| + | </ | ||
| + | Mittels eines anschließende **Reload** geben wir unseren neu definierten VHost dem System bekannt. | ||
| + | # service httpd restart | ||
| + | ==== Konfiguration ==== | ||
| + | === servers.php === | ||
| + | Im Verzeichnis **../ | ||
| + | # vim / | ||
| + | <file php / | ||
| + | <?php | ||
| + | /** | ||
| + | * servers.php: | ||
| + | * the cyrus servers we can connect to. If you have set the | ||
| + | * $default-> | ||
| + | * each of the servers below will appear in a select box on | ||
| + | * the login page. If you've set this to false, then the | ||
| + | * first entry below will be used as the default and no | ||
| + | * select box will appear on the login page. | ||
| + | * | ||
| + | * display: the name to be displayed in the drop-down list of | ||
| + | * servers on the login page (if $default-> | ||
| + | * is set to true in conf/ | ||
| + | * | ||
| + | * use_starttls: | ||
| + | * to protect the connection to the managesieve server. This will | ||
| + | * only work with PHP-5.1 and above built with OpenSSL support, | ||
| + | * and where the server supports it. Set this to false if you want | ||
| + | * to disable TLS. | ||
| + | * | ||
| + | * imapport: port to connect to imapd; usually 143. If you | ||
| + | * want to do imap-ssl set this to ' | ||
| + | * ' | ||
| + | * certificate on your imap server, you sould set this to | ||
| + | * ' | ||
| + | * the c-client libraries with ssl support and you are using | ||
| + | * php-4.1.2 or later with imap-ssl enabled, you will need to | ||
| + | * set this to ' | ||
| + | * | ||
| + | * maildomain: If your users have email addresses of the form | ||
| + | * username@yourdomain and you want to suggest this as a vacation | ||
| + | * address to your users when they create a new vacation rule, set | ||
| + | * this to your mail domain. Do not include the ' | ||
| + | * Note: you can also suggest vacation addresses to your users via | ||
| + | * the get_email_addresses_hook option in config.php. | ||
| + | * | ||
| + | * auth_domain: | ||
| + | * which will be appended to usernames to make them fully-qualified. | ||
| + | * This is useful if your server supports virtual domains but can | ||
| + | * only determine the domain from the username, and you want to save | ||
| + | * your users the trouble of typing their fully-qualified username | ||
| + | * themselves. | ||
| + | * | ||
| + | * $Id: servers.php, | ||
| + | */ | ||
| + | |||
| + | /* Django : 2012-03-09 | ||
| + | * Default-Musterbeispiele | ||
| + | | ||
| + | $servers[' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | $servers[' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | */ | ||
| + | |||
| + | $servers[' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | === config.php === | ||
| + | Die eigentliche Konfiguration von SmartSieve erfolgt dann über die Konfigurationsdatei **config.php**, | ||
| + | # vim / | ||
| + | |||
| + | <file php / | ||
| + | <?php | ||
| + | /** | ||
| + | * This is the SmartSieve configuration file. | ||
| + | * You should edit the global settings in this file to suit | ||
| + | * your installation. | ||
| + | * | ||
| + | * Mail server settings can be found in conf/ | ||
| + | * | ||
| + | * $Id: config.php, | ||
| + | */ | ||
| + | |||
| + | /** | ||
| + | * Language options. | ||
| + | */ | ||
| + | |||
| + | // Default language to use if we don't allow the users to choose. | ||
| + | // This must be one of the languages in conf/ | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Default character set to use. This will only be used if there is no | ||
| + | // charset set for the selected language in conf/ | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | /** | ||
| + | * Login options. | ||
| + | */ | ||
| + | |||
| + | // Cyrus allows certain users to authenticate as themselves, but authorize to | ||
| + | // act as other users. This is called proxy authorization. Usually, only admins | ||
| + | // and sieve_admins can do this. The following array should contain a list of | ||
| + | // users who you want to see the authz box visible on the login page. Set this | ||
| + | // to array(' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we allow users to select which language they wish to view | ||
| + | // SmartSieve in? If false $default-> | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we allow the user to choose from a list of servers? The list | ||
| + | // itself is in servers.php. If this is false, the first entry in | ||
| + | // servers.php will be used. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we provide a box on the login page for users to specify which | ||
| + | // script to edit? This is ignored if allow_multi_scripts is false. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | /** | ||
| + | * Usability options. | ||
| + | */ | ||
| + | |||
| + | // Will we allow the user to access multiple scripts? | ||
| + | // If true, the user will be able to create and modify multiple scripts | ||
| + | // on the server. If false, the user will only be able to access the | ||
| + | // script $default-> | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Default script to use on the server. This is only used if the user has no | ||
| + | // existing scripts, or if $default-> | ||
| + | // that timsieved will add a ' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // If SmartSieve does not recognise the encoding on a Sieve script, it | ||
| + | // will allow the user to edit it's content in a direct edit mode. If, | ||
| + | // however, you do not want users to be able to modify scripts which were | ||
| + | // not created using SmartSieve or Websieve, set this to false. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we allow users to switch between GUI mode into the direct edit mode? | ||
| + | // Note, this is generally a bad idea because any changes made in direct edit | ||
| + | // mode will be lost if the user reverts to GUI mode. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we allow regular expression matching in sieve rules? | ||
| + | // FIXME: note, this currently doesn' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we allow users to create custom sieve rules? | ||
| + | // Note: existing custom rules will always be handled. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Notification methods to allow. This should be an array containing valid notify | ||
| + | // methods, of which only ' | ||
| + | // support the " | ||
| + | // The notify action is disabled by default. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // What IMAP flags should we allow users to set via the " | ||
| + | // list appears below. Setting this to an empty array will disable the addflag action. | ||
| + | // | ||
| + | |||
| + | // Should we enable the " | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we enable the vacation interface? This is enabled by default. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we enable the " | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // The following array provides a mechanism for specifying a site-specific | ||
| + | // spam filtering policy. If your mail domain adds a particular message | ||
| + | // header to mail either indicating that the message is spam, or holding | ||
| + | // some sort of spam score (like those added by SpamAssissin for example) | ||
| + | // you can specify those here. The user will then see a " | ||
| + | // item which will link to a simple GUI asking them what they want to do | ||
| + | // with such messages. | ||
| + | // $default-> | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | |||
| + | /** | ||
| + | * Compatibility options. | ||
| + | */ | ||
| + | |||
| + | // Websieve 0.61 included a feature which automatically used the ': | ||
| + | // comparator where the match string contains the special wildcard characters | ||
| + | // ? or *. Versions of SmartSieve up to 1.0-RC1 maintained this feature if the | ||
| + | // following option was enabled. The rule format has changed and this option | ||
| + | // now only affects the conversion of legacy scripts, but if you have scripts | ||
| + | // created by either of the above cases you can enable the following option to | ||
| + | // maintain the match type of legacy rules. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | /** | ||
| + | * Site-specific options. | ||
| + | */ | ||
| + | |||
| + | // The base url for SmartSieve. If you make SmartSieve the web root, | ||
| + | // set this (and cookie_path) to '/' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Location of include files. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Location of config files. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Location of language files. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Location of library files. Warning: don't change this. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Location of images. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // What name should we use for the PHP session? | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Cookie domain. This should be the name of the server SmartSieve is running | ||
| + | // on. If the domain of your site is different to the web servcer' | ||
| + | // you should set your site's domain here. If all else fails, set this to an | ||
| + | // empty string, but beware that doing so is a security risk as cookies will | ||
| + | // be sent to other websites as well. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Cookie path. This should be the location of SmartSieve under your web root. | ||
| + | // If you leave this empty, all scripts on the server will have access to the | ||
| + | // cookie data. This should match the value of baseurl above. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Title of each page | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Welcome message on the login page. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Which page should users see following login? | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // The default number of vacation days for a new vacation action. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // The maximum number of vacation days the user can choose from. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // What is the maximum number of characters an input field should accept? | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // What is the maximum number of characters a text box should accept? | ||
| + | // e.g. the reject message on the rule page. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Should we set the working script as the active script when saving? Note that | ||
| + | // the working script will always be set as the active script if there are no | ||
| + | // other scripts, or if allow_multi_scripts is false. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Following logout, users will be redirected to the login page. If you | ||
| + | // prefer to have them redirected elsewhere you can specify this here. | ||
| + | // Note, this should be a complete URI including the scheme and hostname. | ||
| + | // $default-> | ||
| + | $default-> | ||
| + | |||
| + | // Should we return to the View Rules page following rule changes? | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // What format should we use for the date on the script head? | ||
| + | // See http:// | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // The timeout (in seconds) to use when reading from the socket. Increase | ||
| + | // this if you are experiencing empty bad response errors. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // SmartSieve will select a cryptography library to use for encryption. You | ||
| + | // can override the one it chooses by setting this option. Choices are | ||
| + | // ' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // An array containing any values needed by the Crypt object. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // SmartSieve will auto negotiate which SASL mechanism to use to authenticate. | ||
| + | // If you want to specify a mechanism instead set this to something other | ||
| + | // than an empty string. Currently, ' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | /** | ||
| + | * Logging options. | ||
| + | */ | ||
| + | |||
| + | // Should we log messages? | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // At what level should we log? Can be LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, | ||
| + | // LOG_WARNING, | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // Logging method. Can be ' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // This should either be a filename if logging_method = ' | ||
| + | // a syslog facility (eg. LOG_LOCAL4) if logging_method = ' | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // What identifier should we use to identify log messages in the log? | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | // An associative array contaning additional configuration information | ||
| + | // needed by the PEAR Log class. | ||
| + | // | ||
| + | $default-> | ||
| + | |||
| + | /** | ||
| + | * Menu items. | ||
| + | */ | ||
| + | |||
| + | // If any of the following are set, a ' | ||
| + | // on the corresponding pages linked to the values set here. These should | ||
| + | // be full URLs. | ||
| + | // $default-> | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | |||
| + | // The following should be an array containing extra items you want | ||
| + | // to include in SmartSieve' | ||
| + | // associative array containing the keys ' | ||
| + | // " | ||
| + | // the icon can be set via the optional ' | ||
| + | // $default-> | ||
| + | // | ||
| + | // ' | ||
| + | // ' | ||
| + | // ' | ||
| + | |||
| + | /** | ||
| + | * Custom function hooks. | ||
| + | */ | ||
| + | |||
| + | // If this is set to a function name, that function will be called to | ||
| + | // retrieve login details for the user. Note, the details supplied when | ||
| + | // the login page is submitted take precedence over this. The function | ||
| + | // must return an array of the form expected by the SmartSieve:: | ||
| + | // function. | ||
| + | // | ||
| + | |||
| + | // If you have an external source of email addresses you want your users | ||
| + | // to see on the vacation settings page, set the following to the name | ||
| + | // of a function that will retrieve these. SmartSieve will then include | ||
| + | // these in the list of addresses the user might include in their vacation | ||
| + | // addresses. The function should return an array of addresses. | ||
| + | // | ||
| + | |||
| + | // If you want to extend the sanity checking done prior to the user saving a | ||
| + | // rule you can define a function and set the function name here. The function | ||
| + | // must take a rule array as a parameter, and will be expected to return boolean | ||
| + | // true to allow the rule to be saved, or false to disallow it. There is an | ||
| + | // example isSaneHook() function below. | ||
| + | // | ||
| + | |||
| + | /** | ||
| + | * Example get_login_details_hook function. | ||
| + | * | ||
| + | * This example looks for credentials set by a single-sign-on | ||
| + | * system. If set, the user will not need to log in again. | ||
| + | * | ||
| + | * @return array Login details | ||
| + | */ | ||
| + | //function getSSODetails() | ||
| + | //{ | ||
| + | // $details = array(); | ||
| + | // if (isset($_SERVER[' | ||
| + | // $_SERVER[' | ||
| + | // $details[' | ||
| + | // $details[' | ||
| + | // $details[' | ||
| + | // $details[' | ||
| + | // } | ||
| + | // return $details; | ||
| + | //} | ||
| + | |||
| + | /** | ||
| + | * Example get_email_addresses_hook function. | ||
| + | * | ||
| + | * @return array The list of email addresses | ||
| + | */ | ||
| + | //function getEmailAddresses() | ||
| + | //{ | ||
| + | // $addresses = array(); | ||
| + | // if (extension_loaded(' | ||
| + | // $ds = ldap_connect(' | ||
| + | // if ($ds) { | ||
| + | // // Anonymous bind. | ||
| + | // $r = ldap_bind($ds); | ||
| + | // $sr = ldap_search($ds, | ||
| + | // " | ||
| + | // $entries = ldap_get_entries($ds, | ||
| + | // for ($i=0; $i< | ||
| + | // $addresses[] = $entries[$i][' | ||
| + | // } | ||
| + | // } | ||
| + | // ldap_close($ds); | ||
| + | // } | ||
| + | // return $addresses; | ||
| + | //} | ||
| + | |||
| + | /** | ||
| + | * Example is_sane_hook function. | ||
| + | * | ||
| + | * This function will be called (if set via is_sane_hook above) prior to a user | ||
| + | * saving a rule, and will be passed a rule array as a parameter. This allows | ||
| + | * you to add custom sanity checks to those of isSane(). You must return boolean | ||
| + | * true to allow the user to save the rule, or false to disallow it. | ||
| + | * | ||
| + | * @param array $rule The rule values | ||
| + | * @return boolean True if rule values are acceptable, false if not | ||
| + | */ | ||
| + | //function isSaneHook($rule) | ||
| + | //{ | ||
| + | // foreach ($rule[' | ||
| + | // if ($action[' | ||
| + | // !preg_match("/ | ||
| + | // SmartSieve:: | ||
| + | // return false; | ||
| + | // } | ||
| + | // } | ||
| + | // return true; | ||
| + | //} | ||
| + | |||
| + | ?> | ||
| + | </ | ||
| + | === php.ini === | ||
| + | Folgende Fehlermeldung kann unter Umständen im Error-Log des vHosts am Webserver auftauchen: | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | Zum Abstellen dieses Fehlers tragen wir in der // | ||
| + | # vim / | ||
| + | <code php>... | ||
| + | ;;;;;;;;;;;;;;;;;;; | ||
| + | ; Module Settings ; | ||
| + | ;;;;;;;;;;;;;;;;;;; | ||
| + | |||
| + | [Date] | ||
| + | ; Defines the default timezone used by the date functions | ||
| + | ; http:// | ||
| + | ; | ||
| + | ; Django : 2012-03-11 | ||
| + | ; default : unset | ||
| + | date.timezone = Europe/ | ||
| + | </ | ||
| + | |||
| + | Anschließend starten wir einmal unseren Webserver durch. | ||
| + | # service httpd condrestart | ||
| + | ==== Programmstart ==== | ||
| + | Mit dem Webbrowser unserer Wahl öffnen wir die [[http:// | ||
| + | $ firefox http:// | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Nach erfolgter Anmeldung befinden wir uns im Hauptbildschirm, | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Dies erfolgt hierbei Benutzerintuitiv und bedarf keiner großartigen Beschreibung mehr - der **WAF** ist somit gesichert! LOL | ||
| + | |||
| + | Da wir noch kein Script hochgeaden haben und auch noch keine Regel definiert hatten, ist natürlich das Default-Regelwerk **smartsieve** noch deaktiviert. | ||
| + | |||
| + | Wir legen uns also eine Regel an. Als Beispiel nehmen wir mal an, dass wir selbst jede eMail verwerfen, die im Betreff die Zeichenkette **CSU** enthält. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Sobald wir unsere erste Regel definiert haben und die Schaltfläche **[Return to Filters]** angewählt haben, sehen wir dass: | ||
| + | - die erstellte Regel angezeigt und | ||
| + | - das Script **smartsieve** aktiviert ist. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Würde nun eine eMail mit der Zeichenfolge **CSU** vom **MTA**((**M**ail**T**ransport**A**gent)) an unseren IMAP-Server cyrus übergeben, würde diese die eMail gar nicht in das Konto des Users einstellen, sondern sofort nach der Entgegennahme löschen! | ||
| + | |||
| + | ====== Links ====== | ||
| + | * **[[centos: | ||
| + | * **[[wiki: | ||
| + | * **[[http:// | ||
| + | |||