summaryrefslogtreecommitdiff
path: root/sendmailadvanced
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2016-04-04 08:15:21 +0200
committerErich Eckner <git@eckner.net>2016-04-04 08:15:21 +0200
commit6dc373759d940181bcb2a742f1f37548a7c1cacc (patch)
treeb4655bec058a283b940df39e606f5b61a1e82d33 /sendmailadvanced
downloadarchlinuxewe.git.save-6dc373759d940181bcb2a742f1f37548a7c1cacc.tar.xz
Initial commit
Diffstat (limited to 'sendmailadvanced')
-rwxr-xr-xsendmailadvanced/PKGBUILD33
-rw-r--r--sendmailadvanced/sendmailadvanced49
-rw-r--r--sendmailadvanced/sendmailadvanced.conf38
3 files changed, 120 insertions, 0 deletions
diff --git a/sendmailadvanced/PKGBUILD b/sendmailadvanced/PKGBUILD
new file mode 100755
index 00000000..7d331cf7
--- /dev/null
+++ b/sendmailadvanced/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Erich Eckner <arch at eckner dot net>
+pkgname=sendmailadvanced
+pkgver=1.0.1
+pkgrel=3
+pkgdesc="Wrapper for sendmail, which generates stamps and encrypts."
+arch=('any')
+url=""
+license=('GPL')
+groups=()
+depends=('gnupg' 'hashcash')
+makedepends=()
+checkdepends=()
+optdepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=('etc/sendmailadvanced.conf')
+options=()
+source=(
+ "${pkgname}-${pkgver}.tar.gz::http://opensources.eckner.net/dl.php?dl=${pkgname}-${pkgver}"
+)
+sha256sums=(
+ "9215b3c04ad4cab091cb7f62e8b565ced4d2f18904a0257cf1d012517db62334"
+)
+
+package() {
+
+ cd ${pkgname}-${pkgver}
+
+ install -D -t $pkgdir/usr/bin/ sendmailadvanced
+ install -D -t $pkgdir/etc/ sendmailadvanced.conf
+
+}
diff --git a/sendmailadvanced/sendmailadvanced b/sendmailadvanced/sendmailadvanced
new file mode 100644
index 00000000..7b5e7fe5
--- /dev/null
+++ b/sendmailadvanced/sendmailadvanced
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+MAILER="cantfind"
+
+for executable in sendmail msmtp
+do
+ for prefix in /usr/bin /usr/sbin /bin /sbin
+ do
+ [ "${MAILER}" == "cantfind" ] && [ -x ${prefix}/${executable} ] && MAILER="${prefix}/${executable}"
+ done
+done
+
+if [ "${MAILER}" == "cantfind" ]
+then
+ >&2 echo "ERROR: Can't find suitable mailer."
+ exit 1
+fi
+
+(
+ . /etc/sendmailadvanced.conf
+
+ tos=""
+ while read s
+ do
+ echo "${s}"
+ if [ "${s:0:3}" == "To:" ] || [ "${s:0:3}" == "Cc:" ]
+ then
+ tos="${tos} ${s:4}"
+ fi
+ if [ "${s:0:8}" == "Subject:" ]
+ then
+ break
+ fi
+ done
+ hashcash -b ${hashcash_bits} -Xm ${tos}
+ while read s
+ do
+ echo "${s}"
+ if [ "${s}" == "" ]
+ then
+ break
+ fi
+ done
+ (
+ body_header_hook $@
+ cat
+ body_footer_hook $@
+ ) | gpg -e -a -s -r ${gpg_recipient}
+) | ${MAILER} -t
diff --git a/sendmailadvanced/sendmailadvanced.conf b/sendmailadvanced/sendmailadvanced.conf
new file mode 100644
index 00000000..7b37bfcd
--- /dev/null
+++ b/sendmailadvanced/sendmailadvanced.conf
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# configuration for sendmailadvanced
+
+# default recipient to encrypt to
+gpg_recipient="me@example.com"
+
+# stamp value
+hashcash_bits=22
+
+# things to put into head of (body of) email
+body_header_hook()
+{
+ true
+}
+
+# things to put into foot of email
+body_footer_hook()
+{
+ while [ $# -gt 0 ]
+ do
+ if [ "$1" == "-t" ]
+ then
+ true
+ elif [ "$(whoami)" == "root" ] && [ "$1" == "-wb" ]
+ then
+ echo "----------------------- Last Backups Begin -------------------------"
+ echo
+ lastBackups
+ echo
+ echo "------------------------ Last Backups End --------------------------"
+ echo
+ else
+ echo "Unknown option: '$1'"
+ fi
+ shift
+ done
+}