#!/usr/bin/tclsh
#============================================================================#
#		     Script, runned after fax receieved                      #
#============================================================================#
# - convert to pdf
# - sent to users
#============================================================================#
# (C) Denis Smirnov <mithraen@freesource.info>			26 Jan 2005  #
#============================================================================#
# Requires: libtiff-utils (tiff2pdf)
# Requires: tcllib
package require mime
package require smtp
package require cmdline

set options {
	{t	"send tiff files"}
	{d	"delete tiff files after send"}
	{D	"delete tiff and pdf files after send"}
}

set usage ": fax-send \[options] filename email from frommail\noptions:"

array set params [::cmdline::getoptions argv $options $usage]

if {$params(D) == 1} {set params(d) 1}
puts $params(D)
puts $params(d)

return

set filename [lindex $argv 0]
set email    [lindex $argv 1]
set from     [lindex $argv 2]
set frommail [lindex $argv 3]
set servername [info hostname]
set f [clock format [clock seconds] -format "%Y-%m-%d_%H-%M.pdf" -gmt 0]

# 8 bytes -- only TIFF header 
# if size is too little, tham fax was not received
if {[file size $filename] <= 8} {
    # bad fax received
    file delete $filename
    
    set token [::mime::initialize \
	-header "From $frommail"	\
	-header "Return-Path {$frommail}"	\
	-header "Subject {fax from $from not received}" \
	-header "To {$email}"]

    ::smtp::sendmessage $token -recipients $email -servers "127.0.0.1 $servername"
    
    exit
}

set dirname [file dirname $filename]
set rootname [file rootname $filename]
set pdfname [file join $dirname "$rootname.pdf"]

exec /usr/bin/tiff2pdf -p a4 -z "$filename" -a "$from" -s "$from" -t "$from" > "$pdfname" 

if {$params(t) == 1} {
	set token [::mime::initialize \
		-file "$pdfname"		\
		-canonical application/pdf		\
		-header "From {$frommail}"	\
		-header "Return-Path {$frommail}"	\
		-header "Content-Disposition {attachment; filename=$f}" \
		-header "Subject {fax from $from}" \
		-header "To {$email}"]
} else {
	set token [::mime::initialize \
		-file "$filename"		\
		-canonical application/tiff		\
		-header "From {$frommail}"	\
		-header "Return-Path {$frommail}"	\
		-header "Content-Disposition {attachment; filename=$f}" \
		-header "Subject {fax from $from}" \
		-header "To {$email}"]
}

::smtp::sendmessage $token -recipients $email -servers "127.0.0.1 $servername"

if {$params(d) == 1} {file delete $filename}
if {$params(D) == 1} {file delete $pdfname}

