IMAP_CAPABILITY="AUTH=LOGIN {
    my $open = open(CAPABILITY, "-|");
    die "Fork failed: $!" unless defined $open;

    if ($open)
    {
        $OUT = "DEFAULT";
        while (<CAPABILITY>)
        {
            chomp;
            s#\s$##g;
            if (/\* CAPABILITY (.*)/)
            {
                $OUT = $1;
                last;
            }
        }
    }
    else
    {
        $open = open(IMAP, "|-");
        die "Fork failed: $!" unless defined $open;
        if ($open)
        {
            print IMAP "1 capability\n";
            close IMAP;
            exit;
        }
        else
        {
            undef $ENV;
            $ENV{USER} = "admin";
            $ENV{MAIL} = "maildir:./Maildir/";
            exec "/usr/libexec/dovecot/imap 2> /dev/null";
        }
    }
}"
export IMAP_CAPABILITY
