HylaFAX The world's
most advanced open source fax server
|
|
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
[hylafax-users] incoming faxes as attached pdf
(Argh! Maybe I should attach the scripts this time?)
If anyone's bored stiff out there, take a look at the following two
scripts, put them in your fax/bin directory as faxrcvd and faxrcvd-mail,
and take a look at the attached PDFs and tell. The PDFs look very poor
(are illegible) as far as I can determine. It seems like ps2pdf isn't
quite up to par yet.
Thanks.
Lee Howard
#! /usr/bin/perl -w
#
# /var/spool/fax/bin/faxrcvd-mail
# Noel Burton-Krahn <noel@burton-krahn.com>
# Sept 4, 1999
#
# a replacement for hylafax's faxrcvd which sends the whole fax by email
use strict;
my($file, $device, $commid, $msg, $toaddr, $fromaddr, $pdffile) = @ARGV;
#open(STDOUT, "|send -oi -f fax $toaddr");
my(%info, $info);
my($boundary);
$boundary=join('---',
"=Boundary=",
$$,
sprintf('%x', rand(0xffffffff)));
open(IN, "/usr/sbin/faxinfo $file|") || die("/usr/sbin/faxinfo $file:
$!");
while(<IN>) {
$info .= $_;
$info{lc($1)} = $2 if( /^\s*(\S+): (.*)$/ );
}
close(IN) || die("/usr/sbin/faxinfo: $?");
print <<EOF
From: HylaFAX Server < $fromaddr >
To: $toaddr
Subject: FAX from $info{sender} at $info{received}
Mime-Version: 1.0
Content-Type: Multipart/Mixed; Boundary=\"$boundary\"
Content-Transfer-Encoding: 7bit
This is a multi-part message in MIME format.
--$boundary
Content-Type: text/plain; charset=us-ascii
Content-Description: FAX information
Content-Transfer-Encoding: 7bit
$info
EOF
;
if( $msg ne "" ) {
print <<EOF
The full document was not received because:
$msg
EOF
;
}
if( open(IN, "<log/c$commid") ) {
print <<EOF
---- Transcript of session follows ----
EOF
;
print while(<IN>);
close(IN);
}
print <<EOF
--$boundary
Content-Type: image/pdf
Content-Description: FAX from $info{sender} at $info{received}
Content-Transfer-Encoding: base64
EOF
;
open(IN, "mimencode $pdffile |") || die ("couldn't mimencode $pdffile: $!");
print while(<IN>);
close(IN) || die("mimencode: $?");
print <<EOF
--$boundary--
EOF
#! /bin/sh
#
# /var/spool/fax/bin/faxrcvd
# Noel Burton-Krahn <noel@burton-krahn.com>
# Sept 4, 1999
#
#
# faxrcvd file devID commID error-msg
#
# modified faxrcvd from hylafax which calls faxrcvd-mail
#
if [ $# != 4 ]; then
echo "Usage: $0 file devID commID error-msg"
exit 1
fi
FILE="$1"
DEVICE="$2"
COMMID="$3"
MSG="$4"
TRUNCFILE=`echo $FILE | sed -e 's/\.tif//'`
test -f etc/setup.cache || {
SPOOL=`pwd`
cat<<EOF
FATAL ERROR: $SPOOL/etc/setup.cache is missing!
The file $SPOOL/etc/setup.cache is not present. This
probably means the machine has not been setup using the faxsetup(1M)
command. Read the documentation on setting up HylaFAX before you
startup a server system.
EOF
exit 1
}
. etc/setup.cache
tiff2ps -a -O fax00345.ps fax00345.tif
/usr/bin/tiff2ps -a -O $SPOOL/$TRUNCFILE.ps $SPOOL/$FILE
/usr/bin/ps2pdf $SPOOL/$TRUNCFILE.ps $SPOOL/$TRUNCFILE.pdf
TOADDR=FaxMaster
PATH="$SPOOL/sbin:$SPOOL/bin:$PATH"
if faxrcvd-mail "$FILE" "$DEVICE" "$COMMID" "$MSG" "$TOADDR" fax "$TRUNCFILE.pdf" |
/usr/sbin/sendmail $TOADDR; then
rm -f $SPOOL/$TRUNCFILE*
fi