Apparently Postfix does not natively support BATV tags. We'd like to strip these prvs=-tags from the FROM field because we think our mailman setup has issues with it (sees sender as a non-member).

I have an ISPConfig 3 mail server setup. This includes amavisd-new and clamav. I installed dkimproxy, just to verify the tag and put the result in the email header (I don't want it to reject mail).

I should mention I've tried batv-milter, but this gave an error ("smfi_main failed"). And I looked at batv-proxy.pl too.

But this solution seemed better for Postfix and is advised to use in combination with amavisd-new. And it was in the Debian repos, too!

I have tried setting up dkimproxy as a postfix smtpd_proxy_filter but then the connection to dkimproxy's TCP port ( in my case) times out.

Now I am not sure if the connection to dkimproxy times out, or if it's relay connection (I send it to amavisd-new as per the configuration below) times out. There seems to be no logging whatsoever for dkimproxy.

# set correct hostname
hostname $fqdn-of-my-mailserver

# specify what address/port DKIMproxy should listen on

# specify what address/port DKIMproxy forwards mail to

Am I doing something wrong?

Has anyone been succesful with BATV filtering and Postfix?


1 Answer 1


Maybe this case was same as yours. Anyway, you can fix it with steps as explained in this batv page.

In main.cf, define

canonical_maps = regexp:/etc/postfix/batv.regexp

In /etc/postfix/batv.regexp, add this line

/^prvs=[0-9]{4}[0-9A-Fa-f]{6}=(.*)$/ $1

If it doesn't work please provide the sample of batv address that you encounter in the system.

For side effects. please take a look the notes from the author

please note that this regexp table may affect other messages entering your mail system, in particular via pickup and submission. If you don't restrict the pattern to your own local domains (typically as defined in mydestination, virtual_alias_domains, and virtual_mailbox_domains), you might inadvertently strip the BATV tag off external recipients' addresses. Unfortunately, it doesn't seem possible to define the cleanup_service_name just for internally generated bounces and notices. It might be possible to define an override for all other services (i.e. forward, pickup, qmqpd, smtpd) in master.conf, though, which would leave the one in main.cf just for internally generated messages; I haven't looked too deeply into this yet, though.

  • Possible answer, haven't tried it yet.
    – aairey
    Feb 26, 2015 at 11:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.