LINUX.ORG.RU
ФорумAdmin

Postfix -> gnupg ->mailclient Что делать с заголовками писем.


0

0

Собственно шифрование полученных 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";

рекомендую зашифровать индекс и адрес получателя на обычном конверте кружочками и ёлочками и посмотреть, что из этого выйдет

dimon555 ★★★★★ ()
Ответ на: комментарий от dimon555

Я не шифрую заголовок письма. разделение идёт в перловом скрипте.

guilder ()

ыыы получилось оказывается незнание perl не освобождает от его ответственности связка enigmail+thunderbird теперь всё прекрасно понимает. осталось заставить the bat всегда реагировать.

guilder ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.