correct usage for Pigeonhole sieve message *redirect* to external server?

PGNet Dev pgnet.dev at gmail.com
Tue Sep 15 19:08:02 EEST 2020


i've installed

	rpm -qa | grep dovecot
		dovecot-2.3.10.1-1.fc32.x86_64
		dovecot-pigeonhole-2.3.10.1-1.fc32.x86_64

i'm setting up imapsieve spam reporting; following,

	https://doc.dovecot.org/configuration_manual/spam_reporting/
	https://wiki.dovecot.org/HowTo/AntispamWithSieve
	https://wiki.dovecot.org/Pigeonhole/Sieve/Examples

my config currrently includes

	protocol imap {
		mail_plugins = $mail_plugins acl imap_acl quota imap_quota imap_sieve mail_log notify
		mail_max_userip_connections = 20
		imap_client_workarounds = tb-extra-mailbox-sep
	}
	protocol sieve {
		mail_plugins = $mail_plugins
		mail_max_userip_connections = 10
	}
	plugin {
		# From elsewhere to Spam folder
		imapsieve_mailbox1_name   = Spam
		imapsieve_mailbox1_causes = COPY
		imapsieve_mailbox1_before = file:/etc/dovecot/scripts/report-spam.sieve

		# From Spam folder to elsewhere
		imapsieve_mailbox2_name   = *
		imapsieve_mailbox2_from   = Spam
		imapsieve_mailbox2_causes = COPY
		imapsieve_mailbox2_before = file:/etc/dovecot/scripts/report-ham.sieve

		sieve_plugins = sieve_imapsieve
		sieve_pipe_bin_dir = /etc/dovecot/scripts
	}
	service submission-login {
		inet_listener submission {
			address = 10.0.1.70, 127.0.0.1
			port = 60465
			ssl = yes
		}
	}

examples @ wiki include

	report-spam.sieve

		require "vnd.dovecot.report";
		report "abuse" "User added this message to the Spam folder." "spam-report at example.com";

instead of a 'report', i want to *redirect* the _unmodified_ Spam message to an _external_ email that's a feed for a bayes spam learner.

to that end i modified

	/etc/dovecot/scripts/report-spam.sieve

		require ["vnd.dovecot.report", "vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
		if environment "imap.mailbox" "Trash" {
			stop;
		}
		if environment "imap.mailbox" "Spam" {
			stop;
		}
		redirect "spam.learn at othermx.example.net";

with that^, when I drag a spam message into my user account's Spam folder, I see in logs only

	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: Mailbox Junk: Mailbox opened because: UID move
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/Junk not found
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: acl vfile: file /data/vmail/example.com/myuser/Maildir/Junk/dovecot-acl not found
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: imapsieve: mailbox Junk: MOVE event
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: sieve: Pigeonhole version 0.5.10 (bf8ef1c2) initializing
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: sieve: include: sieve_global is not set; it is currently not possible to include `:global' scripts.
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: sieve: Sieve imapsieve plugin for Pigeonhole version 0.5.10 (bf8ef1c2) loaded
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: imapsieve: Static mailbox rule [1]: mailbox=`Spam' from=`*' causes=(COPY) => before=`file:/etc/dovecot/scripts/report-spam.sieve' after=(none)
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Debug: imapsieve: Static mailbox rule [2]: mailbox=`*' from=`Spam' causes=(COPY) => before=`file:/etc/dovecot/scripts/report-ham.sieve' after=(none)

	==> /var/log/dovecot/dovecot-info.log <==
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Info: copy from INBOX: box=Junk, uid=4, msgid=<0e9fc21a-c046-46bd-a4ae-e7a1b6424ca7.maildroid at localhost>, size=5647
	2020-09-15 08:52:16 imap(myuser at example.com)<bCdiIOuhPImsDgsd>: Info: expunge: box=INBOX, uid=50, msgid=<0e9fc21a-c046-46bd-a4ae-e7a1b6424ca7.maildroid at localhost>, size=5647

but no redirect occurs; nothing's sent.

what additional/different config is required to get the sieve processor to *send* that email?

in sieve redirect, _is_ the dovecot submission port implicitly used for sending/redirect?  or does the report-spam script need additional capability to exec the send?




More information about the dovecot mailing list