Ergebnis 1 bis 10 von 10
  1. #1
    Benutzer
    Registriert seit
    24.04.2019
    Beiträge
    50

    Hilfe bei custom.lua

    Hi, ich möchte gerne das Problem lösen das man ManageSieve nutzen kann, ohne das der Autoresponder überschrieben wird.

    Dies ist mir auch schon gelungen, nur aktuell habe ich die dovecot.lua geändert, was natürlich nicht so geschickt ist, daher bräuchte ich hilfe dies in die custom.lua zu übernehmen

    Code:
    #/usr/lib/liveconfig/lua/dovecot.lua
    
    ...
    
    -- pattern for "userdb_sieve" setting in /etc/dovecot/passwd
    if USERDB_SIEVE == nil then
      USERDB_SIEVE = "userdb_sieve=/var/mail/%C/%I/default.sieve"
    end
    
    -- pattern for "userdb_sieve_storage" setting in /etc/dovecot/passwd
    if USERDB_SIEVE_STORAGE == nil then
      USERDB_SIEVE_STORAGE = "userdb_sieve_storage=/var/mail/%C/%I/sieve/"
    end
    
    -- pattern for "userdb_sieve_before" setting in /etc/dovecot/passwd
    if USERDB_SIEVE_BEFORE == nil then
      USERDB_SIEVE_BEFORE = "userdb_sieve_before=/var/mail/%C/%I/dovecot.sieve"
    end
    
    ...
    
    function addMailbox(cfg, opts, data)
    
    ...
    
      -- check if sieve directory already exists, otherwise create it:
      if not LC.fs.is_dir('/var/mail/' .. data.contract .. '/' .. data.id .. '/sieve') then
        LC.fs.mkdir_rec('/var/mail/' .. data.contract .. '/' .. data.id .. '/sieve')
        LC.fs.setperm('/var/mail/' .. data.contract .. '/' .. data.id .. '/sieve', "2700", "mail", "mail")
      end
    
    ...
    
        local p_sieve = replace_pattern(USERDB_SIEVE, data)
        local p_sieve_storage = replace_pattern(USERDB_SIEVE_STORAGE, data)
        local p_sieve_before = replace_pattern(USERDB_SIEVE_BEFORE, data)
    
    ...
    
        if p_sieve ~= "" then
          -- userdb_sieve:
          new_line = new_line .. " " .. p_sieve
        end
        if p_sieve_storage ~= "" then
          -- userdb_sieve_storage:
          new_line = new_line .. " " .. p_sieve_storage
        end
        if p_sieve_before ~= "" then
          -- userdb_sieve_before:
          new_line = new_line .. " " .. p_sieve_before
        end
    
     ...
    
      return true
    end
    Geändert von BMK-Media (19.08.2019 um 15:18 Uhr)

  2. #2
    Benutzer
    Registriert seit
    24.04.2019
    Beiträge
    50
    Keiner eine Idee?

  3. #3
    Benutzer
    Registriert seit
    24.04.2019
    Beiträge
    50
    Sehr schade das da keiner helfen kann.

    Habe mich selbst versucht, aber kann es noch nicht testen. Vielleicht kann da ja jemand eher etwas mit anfangen zum helfen.

    https://github.com/Babene03/Liveconfig-Sieve
    Geändert von BMK-Media (19.08.2019 um 15:28 Uhr)

  4. #4
    Erfahrener Benutzer
    Registriert seit
    06.11.2012
    Beiträge
    206
    Hi,

    dazu müsste aus meiner Sicht Klaus nicht nur den Postfix-Block aus der custom.lua auslesen sondern auch den Block für Dovecot. Im Moment würde dies IMHO in der custom.lua ignoriert. (wobei die Funktion interessant wär Klaus? ;-) )

    Gruß Ralf

  5. #5
    Benutzer
    Registriert seit
    24.04.2019
    Beiträge
    50
    Sehr schade, das Klaus sich da nicht zu äußert

  6. #6
    Erfahrener Benutzer
    Registriert seit
    07.04.2011
    Beiträge
    745
    Der Override funktioniert hier doch wie bei allen anderen LUA-Funktionen auch:

    Code:
    dovecot.USERDB_SIEVE = "userdb_sieve=/var/mail/%C/%I/default.sieve"
    function dovecot.addMailbox(cfg, opts, data)
    end

  7. #7
    Benutzer
    Registriert seit
    24.04.2019
    Beiträge
    50
    Zitat Zitat von antondollmaier Beitrag anzeigen
    Der Override funktioniert hier doch wie bei allen anderen LUA-Funktionen auch:

    Code:
    dovecot.USERDB_SIEVE = "userdb_sieve=/var/mail/%C/%I/default.sieve"
    function dovecot.addMailbox(cfg, opts, data)
    end
    Also würde das ganze so aussehen?

    Code:
    orig_addMailbox = dovecot.addMailbox
    
    dovecot.USERDB_SIEVE_STORAGE = "userdb_sieve_storage=/var/mail/%C/%I/sieve/"
    dovecot.USERDB_SIEVE_BEFORE = "userdb_sieve_before=/var/mail/%C/%I/dovecot.sieve"
    
    function dovecot.addMailbox(cfg, opts, data)
    
        orig_return = orig_addMailbox(cfg, opts, data)
    
        -- check if sieve directory already exists, otherwise create it:
        if not LC.fs.is_dir('/var/mail/' .. data.contract .. '/' .. data.id .. '/sieve') then
            LC.fs.mkdir_rec('/var/mail/' .. data.contract .. '/' .. data.id .. '/sieve')
            LC.fs.setperm('/var/mail/' .. data.contract .. '/' .. data.id .. '/sieve', "2700", "mail", "mail")
        end
    
        local p_sieve_storage = replace_pattern(USERDB_SIEVE_STORAGE, data)
        local p_sieve_before = replace_pattern(USERDB_SIEVE_BEFORE, data)
    
        if p_sieve_storage ~= "" then
            -- userdb_sieve_storage:
            new_line = new_line .. " " .. p_sieve_storage
        end
        if p_sieve_before ~= "" then
            -- userdb_sieve_before:
            new_line = new_line .. " " .. p_sieve_before
        end
    
        return orig_return
    
    end

  8. #8
    Erfahrener Benutzer
    Registriert seit
    07.04.2011
    Beiträge
    745
    Zitat Zitat von BMK-Media Beitrag anzeigen
    Also würde das ganze so aussehen?
    Möglich - funktioniert der Code nicht?

  9. #9
    Benutzer
    Registriert seit
    24.04.2019
    Beiträge
    50
    Zitat Zitat von antondollmaier Beitrag anzeigen
    Möglich - funktioniert der Code nicht?
    Ne leider nicht, ich bekomme immer die Meldung:

    Code:
    [2020/03/16 17:45:45.005376] [24385|24389] LC.popimap.addMailbox(MAIL@DOMAIN.de) failed: /usr/lib/liveconfig/lua/custom.lua:16: attempt to call global 'replace_pattern' (a nil value)
    stack traceback:
            /usr/lib/liveconfig/lua/custom.lua:16: in function 'addMailbox'
            /usr/lib/liveconfig/lua/popimap.lua:292: in function </usr/lib/liveconfig/lua/popimap.lua:275>
    Geändert von BMK-Media (18.03.2020 um 10:45 Uhr)

  10. #10
    Benutzer
    Registriert seit
    24.04.2019
    Beiträge
    50
    Jetzt habe ich es

    Aktueller Code ist hier

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •