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