View Single Post
  #1  
Old 29th December 2009, 21:11
sjau sjau is offline
Local Meanie
 
Join Date: Apr 2006
Location: Switzerland
Posts: 1,149
Thanks: 4
Thanked 56 Times in 52 Posts
Default Convert scan-2-ftp into scan-2-email

Hi there

In my place I setup today a network printer in such a way, that I can scan-to-email while the printer itself supports only scan-2-ftp.

The printer itself provides a custom of scan profile that can easily customized. In that way I could setup for everyone an own profile and hence custom login data to the ftp server.

The ftp server itself is a small "home-made" business server. It serves the webpage and acts as email server. So on that server I setup proftpd with virtual users on mysql according to the howtos in here.

With that combination I was able to provide for each scan-to-ftp profile on the printer a custom ftp mail account with a custom dir.

What I needed then was a script that regurarly checks the ftp folders and sends an email if a new file is there.

I used this script here that i wrote:
Code:
#!/bin/bash

user_arr[1]="user1"
user_arr[2]="user2"
user_arr[3]="user3"
user_arr[4]="user4"
user_arr[5]="user5"

email_arr[1]="user1@domain.com"
email_arr[2]="user2@domain.com"
email_arr[3]="user3@domain.com"
email_arr[4]="user4@domain.com"
email_arr[5]="user5@domain.com"

basefolder='/data/ftp'
emailtext="$basefolder/emailtext"

for I in ${!user_arr[*]}
do
        user="${user_arr[$I]}"
        email="${email_arr[$I]}"
        cd $basefolder/$user
        pwd
        for F in `ls`
        do
                VAL=`lsof $basefolder/$user/$F`
                if [ -z $VAL ]
                then
                        echo $F
                        echo $email
                        mutt -s "Scanner - Dokumente" -a $F $email < $emailtext
                        rm $F
                fi
        done
done

rm $basefolder/sent
And then I run that every minute by cron.

I have tested this a little today and it works quite well. However I'm not sure if that script above is good. The only way I could think of to check if a new document has been finished transferring from the printer to the server is by the use of the lsof command.

If you have better suggestions I'd be glad to hear that.
__________________
"Common sense is not as common as commonly believed" by sjau

Auto-Install Script for ISPConfig and Horde on a Vanilla Debian Stable

Need more Repos for Ubuntu? Repository Generator
Need more Repos for Debian? Debian Repository Generator
Reply With Quote
Sponsored Links