Sieve:discarding vacation response for implicitly delivered message

Hallo,
ich habe täglich ein paar Dutzend solcher Log-Meldungen:

Jul 20 22:12:57 mail dovecot: lmtp(28190, weig): wdyMMkXv6lEebgAAVjnpog: sieve: msgid=: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=, and no additional `:addresses‘ are specified)

Eine Vacation-Meldung wird auch nicht ausgeliefert, obwohl Vacation ansonsten
funktioniert.

Es scheint nicht userspezifisch zu sein, da es nicht immer auftritt.

Kann mir da jemand einen Hinweis geben?

Hier einige Hintergrundinformationen:

Debian GNU/Linux 7.1 (wheezy)
postfix 2.9.6-2
dovecot 2.1.7-7
dovecot-sieve 2.1.7-7
dovecot-managesieved 2.1.7-7
roundcube 0.9.0
roundcube-managesieve 6.2

dovecot -n
==============================================================================
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.1
auth_master_user_separator = *
auth_mechanisms = plain login
auth_username_format = %Ln
mail_location = maildir:~/Maildir
mail_plugins = zlib acl mail_log notify
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = Drafts
}
mailbox Junk {
special_use = Junk
}
mailbox Sent {
special_use = Sent
}
mailbox „Sent Messages“ {
special_use = Sent
}
mailbox Trash {
special_use = Trash
}
prefix = INBOX.
separator = .
type = private
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
acl = vfile
acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
zlib_save = gz
zlib_save_level = 6
}
protocols = “ imap lmtp sieve pop3″
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
}
service imap-login {
process_min_avail = 2
service_count = 0
}
service lmtp {
inet_listener lmtp {
address = 127.0.0.1
port = 24
}
}
service managesieve-login {
inet_listener sieve_deprecated {
port = 2000
}
}
ssl_cert = </etc/ssl/certs/mail.tzv.fal.de.pem
ssl_key = </etc/ssl/private/mail.tzv.fal.de.key
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
verbose_proctitle = yes
protocol lmtp {
mail_plugins = zlib acl mail_log notify sieve
}
protocol lda {
mail_plugins = zlib acl mail_log notify sieve
}
protocol imap {
mail_plugins = zlib acl mail_log notify imap_zlib imap_acl
}
==============================================================================

Vielen Dank.
Helmut


————————————————————————-
Helmut Lichtenberg Tel.: 05034/871-128
Institut für Nutztiergenetik (FLI) 31535 Neustadt Germany
————————————————————————-

  • 23. Juli 2013

  • Helmut Lichtenberg

  • 9 Antworten

  1. Andreas Schulze sagt:

    Am 23.07.2013 09:30 schrieb Helmut Lichtenberg:
    > Jul 20 22:12:57 mail dovecot: lmtp(28190, weig): wdyMMkXv6lEebgAAVjnpog: sieve: msgid=: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=, and no additional `:addresses‘ are specified)

    im sieve script muss bei vacation ein liste von Empfängeradressen angegeben werden.
    gegen diese Liste wird der (envelope) recipient offenbar geprüft.
    Wenn sieve da keinen Treffer landet, gibt’s diese Meldung und keine vacation message.

    ergänze das sieve script bei vacation um
    :addresses „weig@tzv.fal.de“


    Andreas Schulze
    Internetdienste | P252

    DATEV eG
    90329 Nürnberg | Telefon +49 911 319-0 | Telefax +49 911 319-3196
    E-Mail info @datev.de | Internet http://www.datev.de
    Sitz: 90429 Nürnberg, Paumgartnerstr. 6-14 | Registergericht Nürnberg, GenReg Nr.70
    Vorstand
    Prof. Dieter Kempf (Vorsitzender)
    Dipl.-Kfm. Wolfgang Stegmann (stellvertretender Vorsitzender)
    Dipl.-Kfm. Michael Leistenschneider
    Dipl.-Kfm. Dr. Robert Mayr
    Jörg Rabe v. Pappenheim
    Dipl.-Vw. Eckhard Schwarzer
    Vorsitzender des Aufsichtsrates: Reinhard Verholen

    • Helmut Lichtenberg sagt:

      Andreas Schulze schrieb am 23.07.2013 10:32:
      > im sieve script muss bei vacation ein liste von Empfängeradressen angegeben werden.
      > gegen diese Liste wird der (envelope) recipient offenbar geprüft.
      > Wenn sieve da keinen Treffer landet, gibt’s diese Meldung und keine vacation message.
      >
      > ergänze das sieve script bei vacation um
      > :addresses „weig@tzv.fal.de“

      Das Standardskript, das von Roundcube erzeugt wird, sieht etwa so aus:
      ==============================================================================
      require [„vacation“];
      # rule:[Urlaub]
      if true
      {
      vacation :days 1 text:
      I am away until July 25nd, 2013. I will read your message when I’m back.

      Institute of Farm Animal Genetics, Neustadt-Mariensee, Germany
      .
      ;
      }
      ==============================================================================

      Merkwürdigerweise funktioniert es i.d.R. so auch, z.B. habe ich dem Nutzer
      lokal eine Email geschickt und die Vacation-Nachricht erhalten. Ein anderer
      lokaler Nutzer hat keine Vacation-Meldung erhalten (mit o.g. Logmeldung).

      Es liegt aber auch nicht am absendenden Nutzer, denn von mir hat er bei
      aktivierter Vacation die Nachricht erhalten.

      Irgendwo muß doch die Mailadresse des ‚Urlaubers‘ als Variable übergeben
      werden. Das ist doch eigentlich der Standard, wenn dieser User in seiner
      Mailbox Vacation anstellt.

      Gruß
      Helmut


      ————————————————————————-
      Helmut Lichtenberg Tel.: 05034/871-128
      Institut für Nutztiergenetik (FLI) 31535 Neustadt Germany
      ————————————————————————-

  2. Peer Heinlein sagt:

    Am 23.07.2013 09:30, schrieb Helmut Lichtenberg:

    Hallo,
    > Jul 20 22:12:57 mail dovecot: lmtp(28190, weig): wdyMMkXv6lEebgAAVjnpog: sieve: msgid=: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=, and no additional `:addresses‘ are specified)
    >
    > Es scheint nicht userspezifisch zu sein, da es nicht immer auftritt.

    Das liegt ja auch an der jeweiligen E-Mail…

    Sieve erwartet, daß es die fragliche Mailadresse auch im Mailheader-TO
    wiederfindet. Also wenn sieve für klaus@example.com läuft, dann muß es
    im Header auch

    To: „bla“

    finden. Hat der Empfänger die Mail nur als BCC bekommen, steht er nicht
    drin. Gleiches bei Mails, die über Weiterleitungen, Mailinglisten o.ä.
    daherkommen.

    Peer


    Heinlein Support GmbH
    Schwedter Str. 8/9b, 10119 Berlin

    http://www.heinlein-support.de

    Tel: 030 / 405051-42
    Fax: 030 / 405051-19

    Zwangsangaben lt. §35a GmbHG: HRB 93818 B / Amtsgericht
    Berlin-Charlottenburg,
    Geschäftsführer: Peer Heinlein — Sitz: Berlin

    • Stephan Bosch sagt:

      Hallo,

      On 7/25/2013 7:51 AM, Peer Heinlein wrote:
      > Am 23.07.2013 09:30, schrieb Helmut Lichtenberg:
      >
      >> Jul 20 22:12:57 mail dovecot: lmtp(28190, weig): wdyMMkXv6lEebgAAVjnpog: sieve: msgid=: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=, and no additional `:addresses‘ are specified)
      >>
      >> Es scheint nicht userspezifisch zu sein, da es nicht immer auftritt.
      > Das liegt ja auch an der jeweiligen E-Mail…
      >
      > Sieve erwartet, daß es die fragliche Mailadresse auch im Mailheader-TO
      > wiederfindet. Also wenn sieve für klaus@example.com läuft, dann muß es
      > im Header auch
      >
      > To: „bla“
      >
      > finden. Hat der Empfänger die Mail nur als BCC bekommen, steht er nicht
      > drin. Gleiches bei Mails, die über Weiterleitungen, Mailinglisten o.ä.
      > daherkommen.

      Das ist nicht ganz korrekt, denn auch vorgefundene Cc, Bcc, Resent-To,
      Resent-Cc und Resent-Bcc Headern werden durchsucht. Weitere Information
      findet man hier:

      https://tools.ietf.org/html/rfc5230#section-4.5

      Oft entsteht diese Situation wenn Mails irgendwo weitergeleitet werden
      zu einer andere Adresse. Dann stimmt die Adresse im Headern nicht mehr
      mit dem `Briefumschlag‘ überein.

      Gruß,

      Stephan.

    • Helmut Lichtenberg sagt:

      Peer Heinlein schrieb am 25.07.2013 07:51:
      > Am 23.07.2013 09:30, schrieb Helmut Lichtenberg:
      > > Jul 20 22:12:57 mail dovecot: lmtp(28190, weig): wdyMMkXv6lEebgAAVjnpog: sieve: msgid=: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=, and no additional `:addresses‘ are specified)
      > > Es scheint nicht userspezifisch zu sein, da es nicht immer auftritt.
      >
      > Das liegt ja auch an der jeweiligen E-Mail…
      >
      > Sieve erwartet, daß es die fragliche Mailadresse auch im Mailheader-TO
      > wiederfindet. Also wenn sieve für klaus@example.com läuft, dann muß es
      > im Header auch
      >
      > To: „bla“
      >
      > finden. Hat der Empfänger die Mail nur als BCC bekommen, steht er nicht
      > drin. Gleiches bei Mails, die über Weiterleitungen, Mailinglisten o.ä.
      > daherkommen.

      Kann es auch daran liegen, daß wir zwei Adressen haben,
      eine offizielle, z.B. Helmut.Lichtenberg@fli.bund.de und eine technische
      heli@tzv.fal.de?
      Die offizielle Adresse wird über eine virtual-Tabelle in postfix auf die
      technische umgesetzt.

      Kann das irgendwie an Sieve propagiert werden oder sollte jeder manuell in
      Roundcube beide (oder nur eine?) Adressen angeben, damit dann in Sieve steht:

      :addresses [„heli@tzv.fal.de“,“helmut.lichtenberg@fli.bund.de“]

      Helmut


      ————————————————————————-
      Helmut Lichtenberg Tel.: 05034/871-128
      Institut für Nutztiergenetik (FLI) 31535 Neustadt Germany
      ————————————————————————-

      • Stephan Bosch sagt:

        On 7/25/2013 9:42 AM, Helmut Lichtenberg wrote:
        > Kann es auch daran liegen, daß wir zwei Adressen haben,
        > eine offizielle, z.B. Helmut.Lichtenberg@fli.bund.de und eine technische
        > heli@tzv.fal.de?
        > Die offizielle Adresse wird über eine virtual-Tabelle in postfix auf die
        > technische umgesetzt.
        >
        > Kann das irgendwie an Sieve propagiert werden oder sollte jeder manuell in
        > Roundcube beide (oder nur eine?) Adressen angeben, damit dann in Sieve steht:
        >
        > :addresses [„heli@tzv.fal.de“,“helmut.lichtenberg@fli.bund.de“]

        Dafür gibt es eine Lösung. Die ist leider jedoch noch nicht ordentlich
        im Wiki dokumentiert:

        http://hg.rename-it.nl/dovecot-2.1-pigeonhole/raw-file/53ee9655e78e/doc/extensions/vacation.txt

        Mann sollte also folgendes konfigurieren:

        sieve_vacation_use_original_recipient = yes

        Außerdem muss LMTP oder LDA korrekt konfiguriert werden, damit der Originalempfänger und der Endempfänger beide verfügbar sind. Informationen dazu findet man hier:

        http://wiki2.dovecot.org/LDA (Parameters -r, -a undlda_original_recipient_header Konfiguration).
        http://wiki2.dovecot.org/LMTP

        Gruß,

        Stephan.

        • Helmut Lichtenberg sagt:

          Hallo Stephan,
          Stephan Bosch schrieb am 25.07.2013 10:12:
          > >Kann das irgendwie an Sieve propagiert werden oder sollte jeder manuell in
          > >Roundcube beide (oder nur eine?) Adressen angeben, damit dann in Sieve steht:
          > >
          > > :addresses [„heli@tzv.fal.de“,“helmut.lichtenberg@fli.bund.de“]
          >
          > Dafür gibt es eine Lösung. Die ist leider jedoch noch nicht
          > ordentlich im Wiki dokumentiert:
          >
          > http://hg.rename-it.nl/dovecot-2.1-pigeonhole/raw-file/53ee9655e78e/doc/extensions/vacation.txt
          >
          > Mann sollte also folgendes konfigurieren:
          >
          > sieve_vacation_use_original_recipient = yes

          Ich habe das in /etc/dovecot/conf.d/90-sieve.conf eingetragen:
          plugin {
          ….
          sieve_vacation_use_original_recipient = yes
          ….
          }
          Dann dovecot reload ausgeführt.

          Bei einer Mail von einem anderen Account an Helmut.Lichtenberg@fli.bund.de
          habe ich keine Vacation-Nachricht erhalten, allerdings bei der Mail an
          heli@tzv.fal.de.

          > Außerdem muss LMTP oder LDA korrekt konfiguriert werden, damit der
          > Originalempfänger und der Endempfänger beide verfügbar sind. Informationen
          > dazu findet man hier:
          >
          > http://wiki2.dovecot.org/LDA (Parameters -r, -a
          > undlda_original_recipient_header Konfiguration).
          > http://wiki2.dovecot.org/LMTP

          In 15-lda.conf bzw. 20-lmtp.conf steht nur:

          protocol lda {
          mail_plugins = $mail_plugins sieve
          }

          protocol lmtp {
          mail_plugins = $mail_plugins sieve
          }

          Muß da noch etwas eingetragen werden?

          Ansonsten sagt doveconf -n folgendes:
          ==============================================================================
          root@mail,conf.d: doveconf -n
          # 2.1.7: /etc/dovecot/dovecot.conf
          # OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.1
          auth_master_user_separator = *
          auth_mechanisms = plain login
          auth_username_format = %Ln
          mail_location = maildir:~/Maildir
          mail_plugins = zlib acl mail_log notify
          managesieve_notify_capability = mailto
          managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
          namespace inbox {
          inbox = yes
          location =
          mailbox Drafts {
          special_use = Drafts
          }
          mailbox Junk {
          special_use = Junk
          }
          mailbox Sent {
          special_use = Sent
          }
          mailbox „Sent Messages“ {
          special_use = Sent
          }
          mailbox Trash {
          special_use = Trash
          }
          prefix = INBOX.
          separator = .
          type = private
          }
          passdb {
          args = /etc/dovecot/dovecot-ldap.conf.ext
          driver = ldap
          }
          plugin {
          acl = vfile
          acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
          sieve = ~/.dovecot.sieve
          sieve_dir = ~/sieve
          sieve_vacation_use_original_recipient = yes
          zlib_save = gz
          zlib_save_level = 6
          }
          protocols = “ imap lmtp sieve pop3″
          service auth {
          unix_listener /var/spool/postfix/private/auth {
          mode = 0666
          }
          }
          service imap-login {
          process_min_avail = 2
          service_count = 0
          }
          service lmtp {
          inet_listener lmtp {
          address = 127.0.0.1
          port = 24
          }
          }
          service managesieve-login {
          inet_listener sieve_deprecated {
          port = 2000
          }
          }
          ssl_cert = </etc/ssl/certs/mail.tzv.fal.de.pem
          ssl_key = </etc/ssl/private/mail.tzv.fal.de.key
          userdb {
          args = /etc/dovecot/dovecot-ldap.conf.ext
          driver = ldap
          }
          verbose_proctitle = yes
          protocol lmtp {
          mail_plugins = zlib acl mail_log notify sieve
          }
          protocol lda {
          mail_plugins = zlib acl mail_log notify sieve
          }
          protocol imap {
          mail_plugins = zlib acl mail_log notify imap_zlib imap_acl
          }
          ==============================================================================

          Vielen Dank.
          Helmut


          ————————————————————————-
          Helmut Lichtenberg Tel.: 05034/871-128
          Institut für Nutztiergenetik (FLI) 31535 Neustadt Germany
          ————————————————————————-

          • Stephan Bosch sagt:

            On 7/25/2013 11:53 AM, Helmut Lichtenberg wrote:
            >> Außerdem muss LMTP oder LDA korrekt konfiguriert werden, damit der
            >> Originalempfänger und der Endempfänger beide verfügbar sind. Informationen
            >> dazu findet man hier:
            >>
            >> http://wiki2.dovecot.org/LDA (Parameters -r, -a
            >> undlda_original_recipient_header Konfiguration).
            >> http://wiki2.dovecot.org/LMTP
            > In 15-lda.conf bzw. 20-lmtp.conf steht nur:
            >
            > protocol lda {
            > mail_plugins = $mail_plugins sieve
            > }
            >
            > protocol lmtp {
            > mail_plugins = $mail_plugins sieve
            > }
            >
            > Muß da noch etwas eingetragen werden?

            Der Originalempfänger ist die Adresse des Empfängers bevor Postfix es
            umgesetzt hat, der Endempfänger ist die Adresse des Empfängers nachdem
            Postfix es umgesetzt hat.

            Für LDA ist wichtig auf welche Weise es gestartet wird von Postfix. Mit
            den Parameters -r und -a sollten der Originalempfänger und der
            Endempfänger beide weitergegeben werden an Dovecot.

            Wenn LTMP benutzt wird, ist es wichtig dass der Originalempfänger von
            Postfix zum Header hinzugefügt wird. Mit dem
            lda_original_recipient_header Konfiguration kann man bestimmen welches
            Header Feld dafür von Dovecot erwartet wird (zum Beispiel
            X-Original-Recipient).

            Dies betrifft zumeist nur Konfiguration für Postfix. Ich habe nur
            beschränkt Erfahrung mit Postfix. Also mit den Details kann ich leider
            nicht viel weiterhelfen.

            Gruß,

            Stephan.

          • Helmut Lichtenberg sagt:

            Stephan Bosch schrieb am 25.07.2013 22:40:
            > Der Originalempfänger ist die Adresse des Empfängers bevor Postfix
            > es umgesetzt hat, der Endempfänger ist die Adresse des Empfängers
            > nachdem Postfix es umgesetzt hat.
            >
            > Für LDA ist wichtig auf welche Weise es gestartet wird von Postfix.
            > Mit den Parameters -r und -a sollten der Originalempfänger und der
            > Endempfänger beide weitergegeben werden an Dovecot.
            >
            > Wenn LTMP benutzt wird, ist es wichtig dass der Originalempfänger
            > von Postfix zum Header hinzugefügt wird. Mit dem
            > lda_original_recipient_header Konfiguration kann man bestimmen
            > welches Header Feld dafür von Dovecot erwartet wird (zum Beispiel
            > X-Original-Recipient).
            >
            > Dies betrifft zumeist nur Konfiguration für Postfix. Ich habe nur
            > beschränkt Erfahrung mit Postfix. Also mit den Details kann ich
            > leider nicht viel weiterhelfen.

            Hallo Stephan,
            um das Ganze möglichst einfach zu halten werde ich den Weg gehen, daß jeder
            Nutzer seine in Frage kommenden Mailadressen manuell in Roundcube/Vacation
            eintragen muß.

            Vielen Dank an alle.
            Helmut


            ————————————————————————-
            Helmut Lichtenberg Tel.: 05034/871-128
            Institut für Nutztiergenetik (FLI) 31535 Neustadt Germany
            ————————————————————————-