#! /usr/bin/perl -w
#
# /var/spool/hylafax/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) = @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/tiff; name="FAX from $info{sender} at $info{received}.tif"
Content-Description: FAX from $info{sender} at $info{received}
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="FAX from $info{sender} at $info{received}.tif"

EOF
    ;

open(IN, "mimencode $file |") || die ("couldn't mimencode $file: $!");
print while(<IN>);
close(IN) || die("mimencode: $?");

print <<EOF
--$boundary--
EOF
