相続、親が弱ってきたら銀行の預金は親の面倒を見ているものが全て解約して管理すべきである、銀行は解約させない!!

メールで送信するFAX

HylaFax
スポンサーリンク

これでスキャンするとPDFにしてくれるスキャナーがあれば

スキャンデーターをメールすればOK

ファックス複合機はいらなくなる

やっとメーカーの縛りから開放できる

実現の手順

メールのタイトルをFAX送信先の電話番号にする

この番号を抽出する

本文はPDFファイルを添付してメールする

抽出したデーターをsendfaxにあてはめてFAXする

メールアドレスはFAXだけのアドレスを作る

わたしはgmailに専用アドレスを作った

popを有効にする必要がある

専用アドレスのメールをfetchmailでhylafaxサーバーに持ってくる

crontabを使い3分おきぐらいに実行させる

実際の手順

$ sudo apt-get install fetchmail nkf

$ mkdir ~/sendfax

$ mkdir ~/sendfax/tmp
$ vi ~/.fetchmailrc
poll pop.gmail.com
protocol pop3
port 995
user 'ファックス専用アドレス@gmail.com'
pass 'パスワード'
ssl
mda '~/sendfax.sh'
$ vi ~/sendfax.sh
#!/bin/sh

err_mail() #エラー発生時にsendmailでメール送信。
{
{
echo "From: fujimoto.takahiko.fax@gmail.com"
echo "To: "$1
echo "Subject: HylaFax MailFax"
echo
echo "FaxNo: "$2
echo $3
}|/usr/sbin/sendmail -i -t
exit 0
}

dest=~/sendfax/tmp #一時保存先
tmp="$dest/$$"
nkf -w > $tmp-mail #メールをMIMEデコードして保存
faxno=`grep -i "^Subject:" $tmp-mail | sed -e "s/subject: //i"` #タイトル取得
mailadr=`grep -i "^Return-Path:" $tmp-mail | sed -e "s/Return-Path: <//i" -e"s/>//"` #メールアドレス取得
#添付ファイル取得処理
grep -i '^Content-Type:' "$tmp-mail" |
grep "multipart/mixed" |
head -n 1 |
sed 's/..*boundary=//' |
tr -d '"' > $tmp-boundary
awk -v b="^--$(cat $tmp-boundary)" -v f="$tmp-F" \
'{if($0~b){a++};print > f a}' "$tmp-mail"
grep -i 'filename=' $tmp-F* |
sed 's/^\([^:][^:]*\):..*filename=\(..*\)/\1 \2/' |
tr -d '"' |
while read a b ; do
sed -n '/^$/,$p' "$a" |
base64 -d > "$a-${b}"
done
#添付ファイルここまで
find $dest -name "* *" | rename 's/ /_/g'  #ファイル名のスペースをアンダーバーに置換
#PDFファイルのリストを作成。PDFファイルがない場合はエラーメールを送信。
file $tmp-* |grep -i "PDF DOCUMENT" |sed -e "s/:.*//" > ${tmp}filelist
if [ ! -s ${tmp}filelist ];then
err_mail $mailadr $faxno "No PDF File"
fi
#GhostscriptでPDFファイルを処理。全ファイルをA4縦に変換して連結。処理失敗時はエラーメールを送信。
gs -dNOPAUSE -dFIXEDMEDIA -dPDFFitPage -sPAPERSIZE=a4 -dBATCH -sDEVICE=pdfwrite -dAutoRotatePages=/None -o ${tmp}faxdata.pdf -f `cat ${tmp}filelist`
if [ $? = 1 ];then
err_mail $mailadr $faxno "Ghostscript Error"
fi
#FAX送信 エラー時はメール送信。
sudo sendfax -f $mailadr -n -d $faxno ${tmp}faxdata.pdf
if [ $? = 1 ];then
err_mail $mailadr $faxno "SENDFAX ERROR"

fi
#一時ファイルを削除して終了。
rm $tmp*
exit 0
$ chmod 600 ~/fetchmailrc

$ chmod +x ~/sendfax.sh

これで一旦タイトルにファックス先の電話番号、本文は添付PDFファイルを専用アドレスにメールする

ファックスが送られたら成功

上記のスクリプトはここで拝借させていただきました

非常に助かりました

ただsendfax命令でパスワードを聞いてくるのでここで停止してしまいます

sudo sendfax に変更しました

最後に3分間隔で/usr/bin/fetchmailを実行する

$ crontab -e

*/3 * * * * /usr/bin/fetchmail
HylaFax
スポンサーリンク
シェアする
ふじやんをフォローする
スポンサーリンク
なんでもDIY

コメント