title: Dovecot Sieve and :output variable for execute
body: <p>I'm trying to get blow Sieve filter to work</p>
  
  <pre><code>require ["fileinto", "imap4flags", "mailbox", "body", "envelope", "vnd.dovecot.pipe", "variables", "vnd.dovecot.execute"];
  
  if envelope :matches "To" "*@*" {
    set "recipient" "${0}";
    set "user" "${1}";
    set "recip_domain" "${2}";
  }
  
  if envelope :matches "From" "*" {
    set "sender" "${0}";
  }
  
  #Check if recipient is valid user
  if execute :output "valid_user" "user-verification" "${recipient}" {
      if string :matches "${valid_user}" "True" {
        if body :raw :contains ["message/notification"] {
          setflag "\\Seen";
          fileinto :create "Notifications";
          stop;
        }
      }
  }
  </code></pre>
  
  <p>Where <code>user-verification</code> is an extprogram which calls API and verify user based on email address then returns boolean (as an output to the console).</p>
  
  <p>Everything works fine when I will remove <code>if string :matches "${valid_user}" "True"</code> statement other way it looks like is not recognizing <code>valid_user</code>variable.</p>
  
  <p>When I pipe <code>valid_user</code> to some script just to capture value for that variable it throws an error:</p>
  
  <blockquote>
    <p>error: specified :args item `True?' is invalid.</p>
  </blockquote>
  
  <p>Why question mark was added to the variable in this case?</p>
  
  <p>Thoughts?</p>