What might cause messages delivered with dovecot-lda to be "invisible" to IMAP clients?
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@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@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@localhost }
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@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@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@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@localhost }
participants (1)
-
Ben Johnson