Hi,
I added DKIM signatures via filter_wrapup() but I'm seeing weirdness when
mailing mailing lists and autoresponders where the DKIM signature seems to
appear to be part of the message.
I can post the function if that helps.
Right now, I thought it would help if I wrote the modified message to a file,
but the header that I added via action_add_header() doesn't present when I call
$entity->stringily() and write that to a flat file.
Something like:
my $dkim = Mail::DKIM::Signer->new(
...
);
if (open(TOSIGN, "<INPUTMSG")) {
while (<TOSIGN>) {
chomp;
s/\r$//;
$dkim->PRINT("$_\r\n");
}
$dkim->CLOSE();
md_syslog('debug', "Adding DKIM header");
my ($header, $signature) = split(/:\s+/i,
$dkim->signature()->as_string(), 2);
$signature =~ s/\r\n/\n\g;
action_add_header($header, $signature);
if (@Recipients == 1 && focus($Recipients[0]) eq '[email protected]') {
open(COPY, ">/tmp/signed.eml");
print COPY $entity->stringify();
close(COPY);
}
}
}
But when I look at the logs and the file, the logs say the header was added...
but the flat file written out shows otherwise.
What am I doing wrong?
Looking at the documentation, it says:
5) After filter_end returns, the function filter_wrapup is called if it has
been defined. It is passed a single argument consisting of the (possibly
modified) MIME::Entity object representing the message about to be delivered,
including any modifications made in filter_end. Within filter_wrapup, you can
not call functions that modify the message body, but you can still add or
modify message headers.
But also:
action_add_header(\$hdr, \$val)Add a header to the message. This can be used in
filter_begin or filter_end. The \$hdr component is the header name without the
colon, and the \$val is the header value. For example, to add the header:
<!-- -->
X-MyHeader: A nice piece of text
use:
action_add_header("X-MyHeader", "A nice piece of text");
Wait, what? We "can still add or modify message headers", but
action_add_header() doesn't seem to be callable from within filter_wrapup(),
only filter_begin() and filter_end().
Is there another way we're expected to add headers?
Thanks,
-Philip
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID. You may ignore it.
MIMEDefang mailing list [email protected]
https://lists.mimedefang.org/mailman/listinfo/mimedefang_lists.mimedefang.org