Собственно шифрование полученных postfixom писем в maildir (пока что я кладу и зашифрованное и нет)
Что надо делать с заголовками писем перед шифровкой чтобы шифровалось и прикриплённое и нормально понималось клиентами (thun....+enigmail/the bat!)
Не судите строго это пока тестовый вариант
#!/bin/sh
cat | /usr/bin/spamassassin > /tmp/out.$$.tmp
email="user@host.example.net"
if [ "$4" == "$email" ];
then
cat /tmp/out.$$.tmp | /usr/local/bin/encrypt.pl >/tmp/perl.log 2 > /tmp/perl.log
/usr/bin/gpg --home=/etc/gnupg -r "$email" -ae --openpgp "/tmp/body..tmp" >/tmp/pgp.log 2> /tmp/err.tmp
cat /tmp/header..tmp > /tmp/gpg.$$.tmp
echo -e "\n" >> /tmp/gpg.$$.tmp
cat /tmp/body..tmp.asc >> /tmp/gpg.$$.tmp
cat /tmp/gpg.$$.tmp | /usr/sbin/sendmail -i "$@"
fi
cat /tmp/out.$$.tmp | /usr/sbin/sendmail -i "$@"
rm /tmp/out.$$.tmp
exit $?
encrypt.pl
#!/usr/bin/perl -T -w
use strict;
use warnings;
undef $/;
my $input = <STDIN>;
#chomp( $input = <> );
$/ = "\n";
print "mail accepted\n";
print $input;
my $header="";
my $body="";
my $procheaders ="";
($header,$body) =split(/\n\n/,$input,2);
print "mail splitted\n";
print $header;
open my $h ,'>',"/tmp/header..tmp";
open my $b ,'>',"/tmp/body..tmp";
$procheaders = $header;
$procheaders =~ s/\?=\s\n/\?=\n/g; # Lines ending with an encoded-word
# have an extra space at the end. Remove it.
$procheaders =~ s/\n[ |\t]//g; # Merge multi-line headers into a single line.
$procheaders =~ s/Content-Type:(.)+;/Content-Type: text\/plain;/;
#$procheaders =~ s/boundary=(.)+//;
print "mail cratched\n";
print $procheaders;
print $h $procheaders;
print $b $body;
close $h;
close $b;
print "mail saved";