What might cause messages delivered with dovecot-lda to be "invisible" to IMAP clients?

Ben Johnson ben at indietorrent.org
Fri Aug 19 01:30:24 UTC 2016


I'm mildly ashamed of myself. The "butchered" messages were presumably
the result of not having a valid message structure with appropriate syntax.

If I do this, the mail is delivered and "visible" in any client, as
expected:

# su vmail
$ cd ~
$ wget http://spamassassin.apache.org/gtube/gtube.txt
$ /usr/lib/dovecot/dovecot-lda -d "test at example.com" -p
"/var/vmail/gtube.txt"

That's wonderful!

But it brings me back to my original question, which is why I'm unable
to use dovecot-lda to feed my antispam pipe program.

I'll post a separate message for that.

Thanks!

-Ben

On 8/18/2016 9:10 PM, Ben Johnson wrote:
> Hello!
> 
> I'm attempting to use dovecot-lda, and for whatever reason, messages
> that I send with it are not visible in my IMAP client.
> 
> $ dovecot --version
> 2.2.22 (fe789d2)
> 
> (Full "doveconf -n" output is at the bottom of this message!)
> 
> Here's the the sequence of commands that I'm using:
> 
> # su vmail
> 
> $ echo 'This is a test message.' > /tmp/test.txt
> 
> $ stat /tmp/test.txt
>   File: '/tmp/test.txt'
>   Size: 24              Blocks: 8          IO Block: 4096   regular file
> Device: fd01h/64769d    Inode: 783925      Links: 2
> Access: (0664/-rw-rw-r--)  Uid: ( 5000/   vmail)   Gid: ( 5000/   vmail)
> Access: 2016-08-18 20:49:38.419011552 -0400
> Modify: 2016-08-18 20:49:07.178995015 -0400
> Change: 2016-08-18 20:49:38.191011425 -0400
>  Birth: -
> 
> $ /usr/lib/dovecot/dovecot-lda -d "test at example.com" -p "/tmp/test.txt"
> 
> When I do this, the destination mailbox acts like there's a new message
> (I'm using Thunderbird, and the mailbox is highlighted in blue and
> bolded, which is the "new mail" behavior in this client).
> 
> But when I "check my inbox", i.e., click on the Inbox, I don't see the
> new message.
> 
> With regard to the filesystem, the message is present and contains the
> intended contents. Here's the "stat" output:
> 
> $ stat
> /var/vmail/example.com/ben/Maildir/cur/1471567777.M685753P32257.example.com,S=24:2,
>   File:
> '/var/vmail/example.com/ben/Maildir/cur/1471567777.M685753P32257.example.com,S=24:2,'
>   Size: 24              Blocks: 8          IO Block: 4096   regular file
> Device: fd01h/64769d    Inode: 783925      Links: 2
> Access: (0664/-rw-rw-r--)  Uid: ( 5000/   vmail)   Gid: ( 5000/   vmail)
> Access: 2016-08-18 20:51:05.647059340 -0400
> Modify: 2016-08-18 20:50:58.543055378 -0400
> Change: 2016-08-18 20:50:58.543055378 -0400
>  Birth: -
> 
> Might anyone know why I'm not "seeing" this message in my IMAP client?
> 
> Interestingly, I tried another IMAP client (Blue Mail for Android), and
> I can actually see the messages there, but they appear in the Inbox as:
> 
> (No subject)
> <Empty Message>
> 
> When I click on the messages, Blue Mail simply displays "No text",
> without the quotes.
> 
> Surely, I'm overlooking something simple...
> 
> Thank you for any help here!
> 
> -Ben
> 
> 
> 
> Full "doveconf -n" output:
> 
> $ doveconf -n
> # 2.2.22 (fe789d2): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.13 (7b14904)
> # OS: Linux 4.4.0-34-generic x86_64 Ubuntu 16.04.1 LTS
> auth_mechanisms = plain login
> disable_plaintext_auth = no
> listen = *,[::]
> log_timestamp = "%Y-%m-%d %H:%M:%S "
> mail_max_userip_connections = 100
> mail_plugins = " quota"
> mail_privileged_group = vmail
> passdb {
>   args = /etc/dovecot/dovecot-sql.conf
>   driver = sql
> }
> plugin {
>   antispam_backend = pipe
>   antispam_debug_target = syslog
>   antispam_pipe_program = /bin/bash
>   antispam_pipe_program_args = /usr/local/bin/sa-learn-pipe.sh
>   antispam_pipe_program_notspam_arg = --ham
>   antispam_pipe_program_spam_arg = --spam
>   antispam_pipe_tmpdir = /tmp
>   antispam_spam_pattern_ignorecase = SPAM;JUNK
>   antispam_trash_pattern_ignorecase = trash;Deleted *
>   antispam_verbose_debug = 1
>   quota = dict:user::file:/var/vmail/%d/%n/.quotausage
>   quota_rule2 = Trash:storage=+100M
>   quota_rule3 = Junk:ignore
>   quota_rule4 = INBOX:storage=+100M
>   quota_warning = storage=100%% quota-reached 100 %u %d
>   quota_warning2 = storage=95%% quota-warning 95 %u %d
>   quota_warning3 = storage=80%% quota-warning 80 %u %d
>   quota_warning4 = -storage=100%% quota-below below %u %d
>   sieve = /var/vmail/%d/%n/.sieve
>   sieve_max_redirects = 25
> }
> postmaster_address = postmaster at example.com
> protocols = imap pop3
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = postfix
>     mode = 0660
>     user = postfix
>   }
>   unix_listener auth-userdb {
>     group = vmail
>     mode = 0600
>     user = vmail
>   }
>   user = root
> }
> service imap-login {
>   client_limit = 1000
>   process_limit = 512
> }
> service lmtp {
>   unix_listener /var/spool/postfix/private/dovecot-lmtp {
>     group = postfix
>     mode = 0600
>     user = postfix
>   }
> }
> service quota-below {
>   executable = script /usr/local/bin/quota-below.sh
>   unix_listener quota-below {
>     group = vmail
>     mode = 0666
>     user = vmail
>   }
>   user = vmail
> }
> service quota-reached {
>   executable = script /usr/local/bin/quota-reached.sh
>   unix_listener quota-reached {
>     group = vmail
>     mode = 0666
>     user = vmail
>   }
>   user = vmail
> }
> service quota-warning {
>   executable = script /usr/local/bin/quota-warning.sh
>   unix_listener quota-warning {
>     group = vmail
>     mode = 0666
>     user = vmail
>   }
>   user = vmail
> }
> ssl_cert = </etc/postfix/smtpd.cert
> ssl_key = </etc/postfix/smtpd.key
> ssl_protocols = !SSLv2 !SSLv3
> userdb {
>   driver = prefetch
> }
> userdb {
>   args = /etc/dovecot/dovecot-sql.conf
>   driver = sql
> }
> protocol imap {
>   mail_plugins = quota imap_quota antispam
> }
> protocol pop3 {
>   mail_plugins = quota
>   pop3_uidl_format = %08Xu%08Xv
> }
> protocol lda {
>   mail_plugins = sieve quota
> }
> protocol lmtp {
>   mail_plugins = quota sieve
>   postmaster_address = webmaster at localhost
> }
> 


More information about the dovecot mailing list