Postavljam fax server i sve readi, osim jedne funkcije: email to fax gateway.
Zapravo i ta funkcija radi, ali bih hteo da iz nje izuzmem nešto:
Ova perl skripta:
Code:
#!/usr/bin/perl
use MIME::Parser;
use POSIX;
my $tmp = "/tmp/mail-$$";
mkdir $tmp, 0700;
my $log_file = "/var/log/faxgw";
my $parser = new MIME::Parser;
$parser->output_under($tmp);
my $entity = $parser->parse(\*STDIN);
my @parts;
my @entities = ($entity);
while ($_ = shift(@entities))
{
my @p;
if (@p = $_->parts)
{
unshift @entities, @p;
} else
{
push @parts, $_;
}
}
my $from = $entity->head->get('From');$from =~ s/\n//go;
my $oldsubject = $entity->head->get('Subject');$oldsubject =~ s/\[(\d+)\]\s*(.*)//go;$number = $1;
my $subject = $2;
system( "sendfax",
"-R",
"-m",
"-n",
"-f", $from,
"-r", $subject,
"-d", $number,
map ({$_->bodyhandle->path() } @parts)
);
#system("/bin/rm", "-rf", $tmp);
my $logmessage = strftime("%d.%m.%Y %H:%M:%S", localtime) . " Sent fax, from: $from, to: $number, regarding: $subject.\n";
open (my $log, ">>", $log_file) || die "Could not open $file for append: $!";
print $log $logmessage;
close $log;
#!/usr/bin/perl
use MIME::Parser;
use POSIX;
my $tmp = "/tmp/mail-$$";
mkdir $tmp, 0700;
my $log_file = "/var/log/faxgw";
my $parser = new MIME::Parser;
$parser->output_under($tmp);
my $entity = $parser->parse(\*STDIN);
my @parts;
my @entities = ($entity);
while ($_ = shift(@entities))
{
my @p;
if (@p = $_->parts)
{
unshift @entities, @p;
} else
{
push @parts, $_;
}
}
my $from = $entity->head->get('From');$from =~ s/\n//go;
my $oldsubject = $entity->head->get('Subject');$oldsubject =~ s/\[(\d+)\]\s*(.*)//go;$number = $1;
my $subject = $2;
system( "sendfax",
"-R",
"-m",
"-n",
"-f", $from,
"-r", $subject,
"-d", $number,
map ({$_->bodyhandle->path() } @parts)
);
#system("/bin/rm", "-rf", $tmp);
my $logmessage = strftime("%d.%m.%Y %H:%M:%S", localtime) . " Sent fax, from: $from, to: $number, regarding: $subject.\n";
open (my $log, ">>", $log_file) || die "Could not open $file for append: $!";
print $log $logmessage;
close $log;
radi sledeće:
email koji stigne na fax server raščlani na sastavne delove:
- tekstualnu komponentu
- HTML komponentu
- attachment komponentu (koji treba da bude u TIFF, PS ili PDF)
tako da u /tmp/ direktorijumu dobije poddirektorijum recimo:
mail-16738
a u njemu
msg-1174598017-16738-0
a onda u njemu
tri fajla:
msg-16738-1.txt msg-16738-2.html TestPage.ps
(čini mi se da to radi negde u okviru one petlje while ($_ = shift(@entities)) ...itd )
skripta zatim koristeći sistemsku komandu "sendfax" prosleđujući joj parametre inicira time slanje faksa.
Ono što meni treba je da se iz "body"-ja emaila izvuče samo attachement (ps, pdf ili tiff), ili pak da se prilikom slanja, odnosno iniciranja sendfax prosledi samo taj attachement a ne i *.txt i *.html komponenta
Imanjiću u vidu da o perl-u nezma ništa, molio bih nekoga da mi pomogne oko ovoga.