Browse Source

Command to ignore incoming email

Bob Mottram 10 years ago
parent
commit
a505df798d
4 changed files with 108 additions and 0 deletions
  1. 4
    0
      Makefile
  2. 1
    0
      debian/source/include-binaries
  3. BIN
      man/freedombone-ignore.1.gz
  4. 103
    0
      src/freedombone-ignore

+ 4
- 0
Makefile View File

22
 	install -m 755 src/${APP}-renew-cert ${DESTDIR}${PREFIX}/bin
22
 	install -m 755 src/${APP}-renew-cert ${DESTDIR}${PREFIX}/bin
23
 	install -m 755 src/${APP}-rmlist ${DESTDIR}${PREFIX}/bin
23
 	install -m 755 src/${APP}-rmlist ${DESTDIR}${PREFIX}/bin
24
 	install -m 755 src/${APP}-rmemail ${DESTDIR}${PREFIX}/bin
24
 	install -m 755 src/${APP}-rmemail ${DESTDIR}${PREFIX}/bin
25
+	install -m 755 src/${APP}-ignore ${DESTDIR}${PREFIX}/bin
25
 	mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1
26
 	mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1
26
 	install -m 644 man/${APP}.1.gz ${DESTDIR}${PREFIX}/share/man/man1
27
 	install -m 644 man/${APP}.1.gz ${DESTDIR}${PREFIX}/share/man/man1
27
 	install -m 644 man/${APP}-prep.1.gz ${DESTDIR}${PREFIX}/share/man/man1
28
 	install -m 644 man/${APP}-prep.1.gz ${DESTDIR}${PREFIX}/share/man/man1
35
 	install -m 644 man/${APP}-renew-cert.1.gz ${DESTDIR}${PREFIX}/share/man/man1
36
 	install -m 644 man/${APP}-renew-cert.1.gz ${DESTDIR}${PREFIX}/share/man/man1
36
 	install -m 644 man/${APP}-rmlist.1.gz ${DESTDIR}${PREFIX}/share/man/man1
37
 	install -m 644 man/${APP}-rmlist.1.gz ${DESTDIR}${PREFIX}/share/man/man1
37
 	install -m 644 man/${APP}-rmemail.1.gz ${DESTDIR}${PREFIX}/share/man/man1
38
 	install -m 644 man/${APP}-rmemail.1.gz ${DESTDIR}${PREFIX}/share/man/man1
39
+	install -m 644 man/${APP}-ignore.1.gz ${DESTDIR}${PREFIX}/share/man/man1
38
 uninstall:
40
 uninstall:
39
 	rm -f ${PREFIX}/share/man/man1/${APP}.1.gz
41
 	rm -f ${PREFIX}/share/man/man1/${APP}.1.gz
40
 	rm -f ${PREFIX}/share/man/man1/${APP}-prep.1.gz
42
 	rm -f ${PREFIX}/share/man/man1/${APP}-prep.1.gz
48
 	rm -f ${PREFIX}/share/man/man1/${APP}-renew-cert.1.gz
50
 	rm -f ${PREFIX}/share/man/man1/${APP}-renew-cert.1.gz
49
 	rm -f ${PREFIX}/share/man/man1/${APP}-rmlist.1.gz
51
 	rm -f ${PREFIX}/share/man/man1/${APP}-rmlist.1.gz
50
 	rm -f ${PREFIX}/share/man/man1/${APP}-rmemail.1.gz
52
 	rm -f ${PREFIX}/share/man/man1/${APP}-rmemail.1.gz
53
+	rm -f ${PREFIX}/share/man/man1/${APP}-ignore.1.gz
51
 	rm -rf ${PREFIX}/share/${APP}
54
 	rm -rf ${PREFIX}/share/${APP}
52
 	rm -f ${PREFIX}/bin/${APP}
55
 	rm -f ${PREFIX}/bin/${APP}
53
 	rm -f ${PREFIX}/bin/${APP}-prep
56
 	rm -f ${PREFIX}/bin/${APP}-prep
60
 	rm -f ${PREFIX}/bin/${APP}-addemail
63
 	rm -f ${PREFIX}/bin/${APP}-addemail
61
 	rm -f ${PREFIX}/bin/${APP}-renew-cert
64
 	rm -f ${PREFIX}/bin/${APP}-renew-cert
62
 	rm -f ${PREFIX}/bin/${APP}-rmlist
65
 	rm -f ${PREFIX}/bin/${APP}-rmlist
66
+	rm -f ${PREFIX}/bin/${APP}-ignore
63
 clean:
67
 clean:
64
 	rm -f \#* \.#* debian/*.substvars debian/*.log
68
 	rm -f \#* \.#* debian/*.substvars debian/*.log
65
 	rm -fr deb.* debian/${APP}
69
 	rm -fr deb.* debian/${APP}

+ 1
- 0
debian/source/include-binaries View File

10
 man/freedombone-renew-cert.1.gz
10
 man/freedombone-renew-cert.1.gz
11
 man/freedombone-rmlist.1.gz
11
 man/freedombone-rmlist.1.gz
12
 man/freedombone-rmemail.1.gz
12
 man/freedombone-rmemail.1.gz
13
+man/freedombone-ignore.1.gz

BIN
man/freedombone-ignore.1.gz View File


+ 103
- 0
src/freedombone-ignore View File

1
+#!/bin/bash
2
+
3
+# Adds an email ignore rule for either an email address
4
+# or text in the subject line
5
+
6
+# License
7
+# =======
8
+#
9
+# Copyright (C) 2015 Bob Mottram <bob@robotics.uk.to>
10
+#
11
+# This program is free software: you can redistribute it and/or modify
12
+# it under the terms of the GNU General Public License as published by
13
+# the Free Software Foundation, either version 3 of the License, or
14
+# (at your option) any later version.
15
+#
16
+# This program is distributed in the hope that it will be useful,
17
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+# GNU General Public License for more details.
20
+#
21
+# You should have received a copy of the GNU General Public License
22
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
23
+
24
+MYUSERNAME=$USER
25
+EMAIL_ADDRESS=
26
+SUBJECT_TEXT=
27
+
28
+function show_help {
29
+    echo ''
30
+    echo 'freedombone-ignore -u [username] -e [mail address] -t [text in subject line]'
31
+    echo ''
32
+	exit 0
33
+}
34
+
35
+while [[ $# > 1 ]]
36
+do
37
+key="$1"
38
+
39
+case $key in
40
+    -h|--help)
41
+    show_help
42
+    ;;
43
+    -u|--user)
44
+    shift
45
+    MYUSERNAME="$1"
46
+    ;;
47
+    -e|--email)
48
+    shift
49
+    EMAIL_ADDRESS="$1"
50
+    ;;
51
+    -t|--text)
52
+    shift
53
+    SUBJECT_TEXT="$1"
54
+    ;;
55
+    *)
56
+    # unknown option
57
+    ;;
58
+esac
59
+shift
60
+done
61
+
62
+if ! [[ $MYUSERNAME && $EMAIL_ADDRESS ]]; then
63
+    if ! [[ $MYUSERNAME && $SUBJECT_TEXT ]]; then
64
+        show_help
65
+	fi
66
+fi
67
+
68
+MUTTRC=/home/$MYUSERNAME/.muttrc
69
+PM=/home/$MYUSERNAME/.procmailrc
70
+
71
+# Ignore if subject line contains text
72
+if [ $SUBJECT_TEXT ]; then
73
+    if ! grep -q "Ignore rule for $SUBJECT_TEXT" $PM; then
74
+        echo "" >> $PM
75
+        echo "# Ignore rule for $SUBJECT_TEXT" >> $PM
76
+        echo ":0" >> $PM
77
+        echo "  * ^Subject:.*$SUBJECT_TEXT" >> $PM
78
+        echo "/dev/null" >> $PM
79
+        echo "# End of ignore rule" >> $PM
80
+        chown $MYUSERNAME:$MYUSERNAME $PM
81
+    fi
82
+fi
83
+
84
+# ignore an email address
85
+if [ $EMAIL_ADDRESS ]; then
86
+    if ! grep -q "Ignore rule for $EMAIL_ADDRESS" $PM; then
87
+        echo "" >> $PM
88
+        echo "# Ignore rule for $EMAIL_ADDRESS" >> $PM
89
+        echo ":0" >> $PM
90
+        echo "  * ^From: $EMAIL_ADDRESS" >> $PM
91
+        echo "/dev/null" >> $PM
92
+        echo "# End of ignore rule" >> $PM
93
+        chown $MYUSERNAME:$MYUSERNAME $PM
94
+    fi
95
+fi
96
+
97
+PROCMAILLOG=/home/$MYUSERNAME/log
98
+if [ ! -d $PROCMAILLOG ]; then
99
+    mkdir $PROCMAILLOG
100
+    chown -R $MYUSERNAME:$MYUSERNAME $PROCMAILLOG
101
+fi
102
+
103
+exit 0