[SOLVED] ISPConfig3 not creating .sieve files

Discussion in 'Installation/Configuration' started by linuxisfun, Nov 28, 2017.

  1. linuxisfun

    linuxisfun New Member

    I'm using ISPConfig3 on a Debian 8 server. I'm using Dovecot for mail delivery. My httpd is Apache2. I can create a .sieve file in the Maildir directory of the user, manually enter sieve rules, and they will be obeyed. When I attempt to create them with ISPConfig3, however, the sieve rules are not created and the file is not created.
    The file should be located at /var/vmail/%d/%n/.sieve, and manually creating this file and populating it with sieve rules has the result of Dovecot respecting those sieve rules on delivery of new mail.
    The mail_user table in the dbispconfig MySQL database has the /var/vmail/%d/%n directory set as maildir, and /var/vmail set as the homedir.
    I have ensured that the ispconfig user has write access to the /var/vmail/%d/%n directories, and I have tried manually editing the /usr/local/ispconfig/server/plugins-enabled/maildeliver_plugin.inc.php file to force ISPConfig3 to set the sieve_file variable as /tmp/file.sieve, but that file also does not get created by ISPConfig3 when I save custom mail rules.
    I have ensured that all mail-related plugins are enabled:
    /usr/local/ispconfig/server/plugins-enabled# ln -s /usr/local/ispconfig/server/plugins-available/maildeliver_plugin.inc.php maildeliver_plugin.inc.php
    /usr/local/ispconfig/server/plugins-enabled# ln -s /usr/local/ispconfig/server/plugins-available/mailman_plugin.inc.php mailman_plugin.inc.php
    /usr/local/ispconfig/server/plugins-enabled# ln -s /usr/local/ispconfig/server/plugins-available/mail_plugin.inc.php mail_plugin.inc.php
    /usr/local/ispconfig/server/plugins-enabled# ln -s /usr/local/ispconfig/server/plugins-available/maildrop_plugin.inc.php maildrop_plugin.inc.php
    /usr/local/ispconfig/server/plugins-enabled# ln -s /usr/local/ispconfig/server/plugins-available/getmail_plugin.inc.php getmail_plugin.inc.php

    I do see the lines for the changes that I am making in the web frontend of ISPConfig3 in the sys_datalog table of the dbispconfig database, but I do not see them show up in any of the log files in /var/log/ispconfig, even after setting logging to verbose.
     
  2. linuxisfun

    linuxisfun New Member

    I was using an old version of ISPC that was not putting information into log files. I updated it, which caused errors to show up in logfiles. If errors happen, the script will not finish, and the sieve files will not be created. Resolved errors in log and the sieve files were created.

    :)
     
  3. mooseman

    mooseman Member

    Hi,
    I'm having a similar issue. The .sieve files are not getting created since an ISPconfig upgrade to v 3.2 (also did a general "apt-get upgrade" at the same time, so I'm not sure on the root of the cause.)
    Old forwarding rules and special filtering scripts are working (those accounts still have a .sieve linked to "./sieve/ispconfig.sieve" in the user's Maildir . Old and new auto responders, new forwarding and new filters are not working; I see the ispconfig.sieve and ispconfig_before.sieve etc. getting created but no .sieve link to any files.
    Dovecot is pointing to .sieve but the link is not getting created when a modification occurs.

    Please advise
     
  4. Jesse Norell

    Jesse Norell Well-Known Member Staff Member Howtoforge Staff

    This is correct behaviour for 3.2, what do you have in those two files?
     
  5. mooseman

    mooseman Member

    /etc/dovecot/dovecot.conf :
    (I changed sieve=/var/vmail/%d/%n/.sieve to: sieve=/var/vmail/%d/%n/ )
    Code:
      sieve=/var/vmail/%d/%n/
      sieve_dir=/var/vmail/%d/%n/
      sieve_before=/var/vmail/%d/%n/
    
    /etc/dovecot/conf.d/90-sieve.conf :
    (I changed sieve = file:~/,sieve; to: sieve = file:~/; )
    Code:
      sieve = file:~/;active=~/.dovecot.sieve
    
    .ispconfig.sieve with "send copy to" and autoreply configured:
    Code:
    # This sieve script is generated by ISPConfig, any changes made will be overwritten.
    # You can create and activate a per-user sieve script (manually or via managesieve),
    # which will execute before this.
    
    require ["fileinto", "mailbox", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"];
    
    
    #################################################################
    # Autoreply
    #################################################################
    
    # Move spam to spam folder
    if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") {
      # Stop here so that we do not reply on spams
      stop;
    }
    
    
    vacation  :days 1
      :subject "Out of office reply"
      :addresses ["[email protected]"]
      "Is this working?";
    
    .ispconfig-before.sieve :

    Code:
    # This sieve script is generated by ISPConfig, any changes made will be overwritten.
    # You can create and activate a per-user sieve script (manually or via managesieve),
    # which will execute after this.
    
    require ["fileinto", "mailbox", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"];
    
    # Move spam to spam folder
    if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") {
      fileinto :create "Junk";
      # Stop here so that we do not reply on spams
      stop;
    }
    
    With the changes I made, auto reply is working but not forward

    ====

    if I put the following in the ISPCONFIG Mailbox custom rules:
    Code:
    redirect "[email protected]";
    
    keep;
    
    is shows up in:
    .ispconfig-before.sieve
    Code:
    # This sieve script is generated by ISPConfig, any changes made will be overwritten.
    # You can create and activate a per-user sieve script (manually or via managesieve),
    # which will execute after this.
    
    require ["fileinto", "mailbox", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"];
    
    # Move spam to spam folder
    if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") {
      fileinto :create "Junk";
      # Stop here so that we do not reply on spams
      stop;
    }
    
    
    redirect "[email protected]";
    
    keep;
    
    and forwarding starts working...

    How should I fix this?
     
  6. Jesse Norell

    Jesse Norell Well-Known Member Staff Member Howtoforge Staff

    What are you trying to accomplish by changing the the file/directory paths, simply changing things to try to get them to work, or a custom setup?

    Debian 8 is not a supported OS for ISPConfig 3.2, perhaps the behaviour of dovecot the is different/not compatible.
     
    Th0m likes this.
  7. mooseman

    mooseman Member

    I changed those files as I can see they were either pointing to .sieve (which no longer gets created by ispconfig) or they were pointing to the ~/sieve subfolder.

    My Goal is to have the "send copy to" and "send BCC to" fields in the user mailbox to work as they are currently broken since the upgrade.
    Is there a way to debug those fields specifically in the logs?

    System is running Debian 9:
    Code:
    root@FOO:~# uname -a
    Linux SAIMAIL01 4.4.0-193-generic #224-Ubuntu SMP Tue Oct 6 17:15:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    Code:
    root@FOO:~# cat /etc/debian_version
    stretch/sid
     
    Last edited: Nov 4, 2020
  8. Taleman

    Taleman Well-Known Member HowtoForge Supporter

    Code:
    root@FOO:~# cat /etc/debian_version
    stretch/sid
    That looks like you are running unstable version of Debian. That may not work.
    And, my Stretch system runs with kernel version 4.9.240-2 so your system is some custom configuration.
     
  9. mooseman

    mooseman Member

    It's Ubuntu:

    Code:
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=16.04
    DISTRIB_CODENAME=xenial
    DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
    
     
  10. Jesse Norell

    Jesse Norell Well-Known Member Staff Member Howtoforge Staff

    They're working in my testing. Lets get rid of your custom config and see what happens; ensure you have no conf-custom templates in /usr/local/ispconfig/server/conf-custom/ or /usr/local/ispconfig/server/conf-custom/install/, then run the ispconfig updater and reconfigure services, then create a test (set "send copy to" on a new mailbox?) and see what happens. If it doesn't work, paste your dovecot.conf here, the settings for that mailbox, and mail logs from your test.
     
  11. mooseman

    mooseman Member

    So how to I reconfigure Dovecot and ISPconfig to use default conf files?
     
  12. Jesse Norell

    Jesse Norell Well-Known Member Staff Member Howtoforge Staff

    What i just said,
    The exact commands to run the updater are in release notes, eg. the bottom of https://www.ispconfig.org/blog/ispconfig-3-2-released/
     
  13. mooseman

    mooseman Member

    Thanks Jesse, this resolved my problem.

    I had previously tried to run
    Code:
    ispconfig_update.sh
    But it wouldn't update as I was already at the current version.
    I followed the instructions on the release notes for ISPCONFIG 3.2 as you mentioned:
    Code:
    cd /tmp
    wget https://www.ispconfig.org/downloads/ISPConfig-3.2.tar.gz
    tar xvfz ISPConfig-3.2.tar.gz
    cd ispconfig3_install/install
    php -q update.php
    And this allowed me to reconfigure the services which I had avoided in the past (I have in the past run into issues after postfix was reconfigured, but everything looks good now, they seem to have taking custom info in my previous files -e.g. RBL Lists- and integrated them into the new config files - very happy)

    I see the updated dovecot.conf has all the proper references to the ISPConfig sieve files which is great!
    Code:
      
    # no longer needed, as 'sieve' is in userdb extra fields:
      sieve=/var/vmail/%d/%n/.sieve
    
      sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve
      sieve_after=/var/vmail/%d/%n/.ispconfig.sieve
      sieve_max_script_size = 2M
      sieve_max_actions = 100
      sieve_max_redirects = 25
    
    Thanks again.
     
    Th0m likes this.

Share This Page