Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Hylafax PDF E-Mail Benachrichtigung HowTo

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jun 2002
    Beiträge
    180

    Hylafax PDF E-Mail Benachrichtigung HowTo

    Hallo,

    nachdem ich nun den ganzen Tag damit verbracht habe das Hylafax Skript 'faxrcvd' so zu modifizieren, dass mir automatisch eine E-Mail mit dem Fax als PDF Anhang zugeschickt wird, moechte ich dies nun der Linux Gemeinde nicht vorenthalten
    Das Skript sollte in /var/spool/fax/bin liegen und natuerlich ausfuehrbarkeits Rechte besitzen.

    Das Script ist keinesfalls perfekt programmiert (z.B. weiss ich nicht wie man mehrere sed Statements zusammenfasst), aber es erfuellt seinen Zweck.

    Zur Lauffaehigkeit muss das Paket 'metamail' installiert sein.
    Je nachdem an wen die Mail gehen soll noch die TOADDR Variable veraendern.

    Falls noch jemand Kommentare oder Verbesserungsvorschlaege hat, bitte Posten!

    Have fun

    Code:
    #! /bin/sh
    #	$Id: faxrcvd.sh.in,v 1.1 2001/04/15 03:48:16 darren Exp $
    #
    # HylaFAX Facsimile Software
    #
    # Copyright (c) 1990-1996 Sam Leffler
    # Copyright (c) 1991-1996 Silicon Graphics, Inc.
    # HylaFAX is a trademark of Silicon Graphics
    # 
    # Permission to use, copy, modify, distribute, and sell this software and 
    # its documentation for any purpose is hereby granted without fee, provided
    # that (i) the above copyright notices and this permission notice appear in
    # all copies of the software and related documentation, and (ii) the names of
    # Sam Leffler and Silicon Graphics may not be used in any advertising or
    # publicity relating to the software without the specific, prior written
    # permission of Sam Leffler and Silicon Graphics.
    # 
    # THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
    # EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
    # WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
    # 
    # IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
    # ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
    # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    # WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
    # LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
    # OF THIS SOFTWARE.
    #
    
    #
    # faxrcvd file devID commID error-msg destination
    #
    if [ $# -lt 5 ]; then
        echo "Usage: $0 file devID commID error-msg destination"
        exit 1
    fi
    
    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(8C)
    command.  Read the documentation on setting up HylaFAX before you
    startup a server system.
    
    EOF
        exit 1
    }
    . etc/setup.cache
    
    INFO=$SBIN/faxinfo
    FAX2PS=$TIFFBIN/fax2ps
    TOADDR=postmaster@localhost
    #
    # There is no good portable way to find out the fully qualified
    # domain name (FQDN) of the host or the TCP port for the hylafax
    # service so we fudge here.  Folks may want to tailor this to
    # their needs; e.g. add a domain or use localhost so the loopback
    # interface is used.
    #
    HOSTNAME=`hostname`			# XXX no good way to find FQDN
    PORT=4559				# XXX no good way to lookup service
    
    FILE="$1"
    DEVICE="$2"
    COMMID="$3"
    MSG="$4"
    SPOOL=`pwd`
    TRUNCFILE=`echo $FILE | sed -e 's/\.tif//'`
    
    if [ -f $FILE ]; then
        # Create PDF
        /usr/bin/tiff2ps -a -O $SPOOL/$TRUNCFILE.ps $SPOOL/$FILE
        /usr/bin/ps2pdf $SPOOL/$TRUNCFILE.ps $SPOOL/$TRUNCFILE.pdf
        #
        # Check the sender's TSI and setup to dispatch
        # facsimile received from well-known senders.
        #
        SENDER="`$INFO $FILE | $AWK -F: '/Sender/ { print $2 }' 2>/dev/null`"
        SENDTO=$TOADDR
    #    if [ -f bin/FaxDispatch ]; then
    #	. bin/FaxDispatch	# NB: FaxDispatch sets SENDTO based on $5
    #    fi
    #    (echo "To: $TOADDR"
    #     echo "From: The HylaFAX Receive Agent <fax>"
    #     echo "Subject: facsimile received from $SENDER";
    #     echo ""
    #     echo "$FILE (ftp://$HOSTNAME:$PORT/$FILE):"; $INFO -n $FILE
    #     echo "ReceivedOn: $DEVICE"
    #     if [ "$MSG" ]; then
    #	echo ""
    #	echo "The full document was not received because:"
    #	echo ""
    #	echo "    $MSG"
    #	echo ""
    #	echo "    ---- Transcript of session follows ----"
    #	echo ""
    #	if [ -f log/c$COMMID ]; then
    #	    $SED -e '/-- data/d' \
    #		 -e '/start.*timer/d' -e '/stop.*timer/d' \
    #		 log/c$COMMID
    #	elif [ -n "$COMMID" ]; then
    #	    echo "    No transcript available (CommID c$COMMID)."
    #	else
    #	    echo "    No transcript available."
    #	fi
    #     else
    #	echo "CommID:     c$COMMID (ftp://$HOSTNAME:$PORT/log/c$COMMID)"
    #     fi
    #     if [ -n "$SENDTO" ]; then
    #	echo ""
    #	echo "The facsimile was automatically dispatched to: $SENDTO." 
    #     fi
    #    ) | 2>&1 $SENDMAIL -ffax -oi $TOADDR
        if [ -n "$SENDTO" ]; then
    	(MIMEBOUNDARY="NextPart$$"
    	 echo "Mime-Version: 1.0"
    	 echo "Content-Type: Multipart/Mixed; Boundary=\"$MIMEBOUNDARY\""
    	 echo "Content-Transfer-Encoding: 7bit"
    	 echo "To: $SENDTO"
    	 echo "From: The HylaFAX Receive Agent <fax>"
    	 echo "Subject: facsimile received from $SENDER";
    	 echo ""
    	 echo "--$MIMEBOUNDARY"
    	 echo "Content-Type: text/plain; charset=us-ascii"
    	 echo "Content-Transfer-Encoding: 7bit"
    	 echo ""
    	 echo "$FILE (ftp://$HOSTNAME:$PORT/$FILE):"; $INFO -n $FILE
    	 echo "ReceivedOn: $DEVICE"
    	 if [ "$MSG" ]; then
    	    echo ""
    	    echo "The full document was not received because:"
    	    echo ""
    	    echo "    $MSG"
    	    echo ""
    	    echo "    ---- Transcript of session follows ----"
    	    echo ""
    	    if [ -f log/c$COMMID ]; then
    		$SED -e '/-- data/d' \
    		     -e '/start.*timer/d' -e '/stop.*timer/d' \
    		     log/c$COMMID
    	    elif [ -n "$COMMID" ]; then
    		echo "    No transcript available (CommID c$COMMID)."
    	    else
    		echo "    No transcript available."
    	    fi
    	 else
    	    echo "CommID:     c$COMMID (ftp://$HOSTNAME:$PORT/log/c$COMMID)"
    	 fi
    
    	 TEMP="`$INFO $FILE | $AWK -F: '/Received/ { print $0 }' 2>/dev/null`"
    	 TEMP2="`echo $TEMP | sed -e 's/\Received\: //'`"
    	 TEMP3="`echo $TEMP2 | sed -e 's/://g'`"
    	 DATE="`echo $TEMP3 | sed -e 's/ /_/'`"
    	 TEMP="`echo $SENDER | sed -e 's/+//'`"
    	 SENDERSH="`echo $TEMP | sed -e 's/ //g'`"
    
    	 echo ""
    	 echo "--$MIMEBOUNDARY"
    #        echo "Content-Type: application/postscript"
    	 echo "Content-Type: application/pdf"
    	 echo "Content-Description: FAX document"
    #	 echo "Content-Transfer-Encoding: 7bit"
             echo "Content-Transfer-Encoding: base64"
    	 echo -E -n "Content-Disposition: attachment; filename=Fax_from_$SENDERSH"
    	 echo -E "_at_$DATE.pdf"
    	 echo ""
    #	 $FAX2PS $FILE 2>/dev/null
    
    	 #
    	 # Encode PDF file into email
    	 # mimencode is part of metamail package
    	 #
    	 mimencode -b $SPOOL/$TRUNCFILE.pdf
    
    	 echo "$FILE"
    	 echo ""
    	 echo "--$MIMEBOUNDARY--"
    	) | 2>&1 $SENDMAIL -ffax -oi $SENDTO
    	rm $SPOOL/$TRUNCFILE.ps $SPOOL/$TRUNCFILE.pdf
        fi
    else
        #
        # Generate notification mail for a failed attempt.
        #
        (echo "To: $TOADDR"
         echo "From: The HylaFAX Receive Agent <fax>"
         echo "Subject: facsimile not received"
         echo ""
         echo "An attempt to receive facsimile on $DEVICE failed because:"
         echo ""
         echo "    $MSG"
         echo ""
         echo "    ---- Transcript of session follows ----"
         echo ""
         if [ -f log/c$COMMID ]; then
    	$SED -e '/-- data/d' \
    	     -e '/start.*timer/d' -e '/stop.*timer/d' \
    	    log/c$COMMID
         elif [ -n "$COMMID" ]; then
    	echo "    No transcript available (CommID c$COMMID)."
         else
    	echo "    No transcript available."
         fi
        ) | 2>&1 $SENDMAIL -ffax -oi $TOADDR
    fi

  2. #2
    Registrierter Benutzer
    Registriert seit
    Jun 2000
    Ort
    Deutschland,38159 Vechelde
    Beiträge
    379
    Hallo,

    vielen Dank das du dir die Mühe mit dem Script geamcht hast. Bei mir funzt es ohne grosse Änderungen....nur den Empfänger sowie den Host geändert.
    Aber ich würde gerne das die PDF Datei nicht als Mail versand wird, sondern irgendwo gespeichert wird.....am schönsten wäre es wenn das original nicht als tiff sondern als PDF in /var/spool/fax/revcq gespeichert wird.

    Gruss

    Norbert
    Hier treffen sich die Duke fahrer www.dukecity.de

    edefauler

  3. #3
    Registrierter Benutzer
    Registriert seit
    May 2002
    Beiträge
    629
    zumindest in den aktuellen hylafax versionen sollte dieses script nicht notwendig sein. das erstellen der datei /etc/hylafax/FaxDispatch sollte reichen, darin kann der file und zieltyp für jedes device oder zielnummer festgelegt werden.

    genaueres steht in der hylafax docu.

    www.cargal.org | Jabber ID: spunzATcargal.org
    Cargal.org Jabber Channel: cargal@jabber.cargal.org

    promote my opera

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •