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.
Recent comments
3 hours 3 min ago
4 hours 3 min ago
7 hours 50 min ago
9 hours 4 min ago
12 hours 40 min ago
19 hours 55 min ago
1 day 4 hours ago
1 day 6 hours ago
1 day 21 hours ago
1 day 23 hours ago