HylaFAX The world's
most advanced open source fax server
|
|
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
Re: [hylafax-users] email2fax gateway question...
Hi Matt,
there is my script. It is still based on the one you mailed. But it went
through a few changes.
>>I will get in a form it can be posted and I will send it to you.
no I failed completly, I hope you don't mind my german comments in it.
>
> Thanks. I'm curious now as to which bits were causing a problem :)
>
Oh ...
the ripmime bit,
the faxlist bit,
the sendfax bit
the pslist bit
But it helped me a big great lot!!!!
I've attached the new version of the script and commented my changes.
As you wrote, it might be a bit quick and dirty. Well now it is.
Perhaps it will never be a script beauty. But it works, which makes it
beautiful in a special way. Like my Mountain Bike, which is dirty, but
has never been more beautiful to me.
Again many "Thank You's"
Georg
#!/bin/sh
#
############################################################################
### Email to fax conversion script ###
############################################################################
#
PATH=/bin:/usr/bin
export PATH;
#
############################################################################
### Setup system specifics ###
############################################################################
#
# Hier editieren ??
domain=`kidlinux.glerch.de | cut -d '.' -f 2-`
#
## CHANGE THE FAXMASTER ENTRY ##
# ursprünglich war das so, aber ich habe es fest verdrahtet
# due to my little expiriences whith scripting I wanted to eliminate
# problems with variables
#faxmaster=faxmaster@${domain}
faxmaster=faxmaster@xxxxxxxxx
##
psmail=psmail
tmpdir=/tmp/fax_`date +%d%m%y%H%M%S`$$/
unpack=tmp/
finalout=00000_headerpage
list=faxnumlist
log=sendfaxlog
message=errormsg
# these aren't needed anymore
#body=faxbody_$$
#head=faxheader_$$
#
############################################################################
### Setup paths to programmes ###
############################################################################
#
ripmime=/usr/local/bin/ripmime
sendfax=/usr/local/bin/sendfax
#
############################################################################
## Setup list of sender and recipients ##
############################################################################
#
{
shift;
sender=$1
shift;
recipient=$@
}
#
############################################################################
### If sender is null, empty or daemon send job as faxmaster ###
############################################################################
#
{
if
[ "${sender}" = "<>" ]
then
sender=${faxmaster};
elif
[ "${sender}" = "" ]
then
sender=${faxmaster};
elif
# urpsrünglich war das so aber ich habe es fest verdrahtet,
# again I wanted to work my way around variables
# [ "${sender}" = "MAILER-DAEMON@${domain}" ]
[ "${sender}" = "MAILER-DAEMON@xxxxxxxxx" ]
then
sender=${faxmaster};
fi
}
#
############################################################################
### Make temporary directory and unpacking directory ###
############################################################################
#
#
mkdir -p ${tmpdir}${unpack};
cd ${tmpdir};
#
############################################################################
### Copy stdin to psmail and extract email message parts ###
############################################################################
#
cat > ${psmail};
# so war es ursprünglich,
#${ripmime} -i ${psmail} -p ${body} -e ${head} -d ${unpack};
#
# that's new. ripmime produces files like textfile0, textfile1, attachmentname.filetype
${ripmime} -i ${psmail} -d ${unpack};
# only contains this is a multipart mime message or so it gets deleted
rm -f tmp/textfile0;
#
############################################################################
### Extract subject line from faxheader and add to firstpage ###
############################################################################
# ergibt inhalt der datei 00000_headerpage
# habe ich heute 16.05. geändert
#grep -i '^subject:' < ${unpack}${head} > ${unpack}${finalout};
# soll Subject Zeile in temp stopfen
# i didn't know how to get the subject part at the beginnig of textfile1,
# so I had to work my way around
cat psmail | grep Subject >> tmp/temp;
# fügt subject nach rest text von mail ein
# now I add the textfile1 to temp
cat tmp/textfile1 >> tmp/temp;
rm -f tmp/textfile1;
mv tmp/temp tmp/textfile1;
#
############################################################################
### Extract fax numbers into a list suitable for Sendfax ###
############################################################################
#
echo ${recipient} | xargs -n 1 | sed -e 's/[^0-9]//g' > ${list}
#
# This one is new again, I put the faxnumbers in the variable faxlist
faxlist=`echo ${recipient} | xargs -n 1 | sed -e 's/[^0-9]//g'`
#faxlist=${tmpdir}${list}
#
############################################################################
### Get contents of fax message and strip out unwanted lines ###
############################################################################
#braucht man nicht, da textfile0 wo das drinstand eh schon gelöscht
# the files wiht headeror body don't exist anymore
# and it didn't work anyway
#sed -e '/message in MIME format/d' < ${unpack}${body}* \
# >> ${unpack}${finalout};
#
############################################################################
### Build file list for faxing ###
############################################################################
#
#psfile=`find -s ${tmpdir}${unpack} -type f | \
# sed -e '/'${head}'/d' -e '/'${body}'/d'`
# geändert gl 13/05/2005 -s gibt es lt. man find nicht
# no -s option with find,
# geändert matt hats gesendet
#psfile=`find ${tmpdir}${unpack} -type f | \
# sed -e '/'${head}'/d' -e '/'${body}'/d'`
# I had to change this, no body and header-files
# wieder geändert dateien head und body gibts es nett
#psfile=`find ${tmpdir}${unpack} -type f | \
# sed -e '/'${head}'/d' -e '/'${body}'/d' | sort`
#
# that's the one that works, in the unpack dir there only the attachments
# and the textfile1 left so I could keep it simple,
psfile=`find ${tmpdir}${unpack} -type f`
# is not realy needed anymore, but for debugging purposes it does a good job
echo $psfile >> $(tmpdir)filelist
#
############################################################################
### Initiate sendfax with the list of file(s) and faxnumber(s) ###
############################################################################
#ursprünglich, sendfax kennt aber keine option -z
# this call of sendfax does'nt work anymore. no -z option
# -f apeman@xxxxxxxxx is a testuser. I want a sent fax notification, but
# I'm not getting one, which drives me nuts.
# I think I'll go to the park and bite someone.
#${sendfax} -n -D -m -f ${sender} -z ${faxlist} ${psfile} 2> ${tmpdir}${log};
${sendfax} -n -D -f apeman@xxxxxxxxx -d ${faxlist} ${psfile} > ${tmpdir}${log};
xstatus=$?
#
############################################################################
### Check status of sendfax delivery ###
############################################################################
#
{
if
[ "${xstatus}" != "0" ]
then
#
cat > ${message} << errormail
# # # # # # # # # # # # # # # # # #
# ERROR IN FACSIMILE TRANSMISSION #
# # # # # # # # # # # # # # # # # #
The email that you submitted for facsimile transmission,
could not be sent for the following reason(s);
`cat ${log}`
Correct the problem and resubmit the facsimile.
# # # # # # # # # # # # # # # # # #
# END OF MESSAGE #
# # # # # # # # # # # # # # # # # #
errormail
#
mail -E -s "Facsimile Submission Error" ${sender} < ${message};
# auskommentiert zu testzwecken
# rm -rf ${tmpdir};
exit 0;
else
exit 0;
fi
}
#
#
#
############################################################################
############################### End of file ################################
############################################################################
#
#
############################################################################
#
#
# master.cf entry
#usr/local/bin/faxscripts
#faxrip unix - n n - 1 pipe user=fax #argv=/usr/local/bin/faxscripts/faxrip -- ${sender} ${recipient}
#
# transport entry
#
#fax.glerch.de faxrip:localhost
#
#
############################################################################