rpmasssend - rohrpost - A commandline mail client to change the world as we see it.
(HTM) git clone git://r-36.net/rohrpost
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
rpmasssend (1387B)
---
1 #!/bin/sh
2
3 usage() {
4 printf "usage: %s [-hd] [-s sent folder] [-m folder] addresses.txt id\n" \
5 "$(basename $1)" 2>&1
6 exit 1
7 }
8
9 dodelete=0
10
11 folder=""
12 sentfolder=""
13 while getopts "hm:ds:" opt;
14 do
15 case $opt in
16 d)
17 dodelete=1
18 ;;
19 m)
20 folder="$OPTARG"
21 ;;
22 s)
23 sentfolder="$OPTARG"
24 ;;
25 *)
26 usage $0
27 ;;
28 esac
29 done
30 shift $(($OPTIND - 1))
31 if [ "$1" = "--" ];
32 then
33 shift 1
34 fi
35
36 if [ $# -lt 2 ];
37 then
38 usage $0
39 fi
40
41 addresses="$1"
42 shift 1
43
44 if [ -z "$folder" ];
45 then
46 folder=$(rpcfg -v fold_drafts)
47 if [ $? -eq 1 ];
48 then
49 echo "Please specify fold_drafts in rpcfg."
50 exit 1
51 fi
52 fi
53
54 if [ -z "$sentfolder" ];
55 then
56 sentfolder=$(rpcfg -v fold_sent)
57 fi
58
59 mailer=$(rpcfg -v send_cmd)
60 if [ $? -eq 1 ];
61 then
62 echo "Please specify a send_cmd in rpcfg."
63 exit 1
64 fi
65
66 for mid in $(rpids -m $folder -- "$@");
67 do
68 totalnum="$(wc -l "${addresses}" | cut -d' ' -f 1)"
69 nownum=0
70 cat "${addresses}" \
71 | while read -r address;
72 do
73 [ -z "${address}" ] && continue
74
75 nownum=$(($nownum + 1))
76 printf "Sending to (%d/%d): %s\n" "${nownum}" "${totalnum}" "${address}"
77 {
78 printf "To: %s\n" "${address}"
79 rpview -m $folder -r $mid | grep -v To:
80 } | eval $mailer
81 [ $? -gt 0 ] && exit 1
82 done
83
84 echo "$mid was sent successfully."
85 continue
86 if [ ! -z "$sentfolder" ];
87 then
88 rpmv -qm $folder $sentfolder $mid
89 else
90 if [ $dodelete -eq 1 ];
91 then
92 rprm -qm $folder $mid
93 fi
94 fi
95 done
96