From: "Gerd v. Egidy" <lists@egidy.de>
To: mlmmj@mlmmj.org
Subject: [PATCH] add MIME-aware footers
Date: Sun, 14 Dec 2008 00:23:12 +0000 [thread overview]
Message-ID: <200812140123.13634.lists@egidy.de> (raw)
[-- Attachment #1: Type: text/plain, Size: 1050 bytes --]
Hi,
I've been bitten by the footer-function not being MIME-aware. I've read up the
topic on the list-archive and found out that I'm not the only one and that a
solution has to be separatable from the core mlmmj.
I found the altermime program (http://www.pldaniels.com/altermime/) which
seems to be a perfect match for the MIME-munging required. So I wrote a small
shell script to integrate altermime and mlmmj.
How to use it:
- install altermime to /usr/bin/altermime
- copy the attached mlmmj-amime-receive into /usr/bin
- put the footer-text for the different MIME-types into
control/amime-footer-text
control/amime-footer-html
control/amime-footer-base64
- replace mlmmj-recieve with mlmmj-amime-receive in /etc/aliases, e.g.
myml: "|/usr/bin/mlmmj-amime-receive -L /var/spool/mlmmj/myml/"
watch out for recieve vs. receive...
- newaliases
Morten, I hope this solution is acceptable for inclusion into mlmmj. I
attached mlmmj-amime.patch too, this is intended for you and adds mlmmj-amime-
receive into contrib.
Kind regards,
Gerd
[-- Attachment #2: mlmmj-amime-receive --]
[-- Type: application/x-shellscript, Size: 2191 bytes --]
[-- Attachment #3: mlmmj-amime.patch --]
[-- Type: text/x-patch, Size: 2930 bytes --]
diff -r -u -N mlmmj-1.2.16-RC1.orig/contrib/Makefile.am mlmmj-1.2.16-RC1/contrib/Makefile.am
--- mlmmj-1.2.16-RC1.orig/contrib/Makefile.am 2008-10-30 21:06:16.000000000 +0100
+++ mlmmj-1.2.16-RC1/contrib/Makefile.am 2008-12-13 23:39:33.000000000 +0100
@@ -2,3 +2,5 @@
EXTRA_DIST = web
SUBDIRS = recievestrip
+
+bin_SCRIPTS = mlmmj-amime-receive
diff -r -u -N mlmmj-1.2.16-RC1.orig/contrib/mlmmj-amime-receive mlmmj-1.2.16-RC1/contrib/mlmmj-amime-receive
--- mlmmj-1.2.16-RC1.orig/contrib/mlmmj-amime-receive 1970-01-01 01:00:00.000000000 +0100
+++ mlmmj-1.2.16-RC1/contrib/mlmmj-amime-receive 2008-12-13 23:23:23.000000000 +0100
@@ -0,0 +1,89 @@
+#!/bin/bash
+#
+# mlmmj-amime-receive
+#
+# Take mail from stdin, pipe it through altermime and then to mlmmj-recieve
+# needed to add footers in a MIME-aware way
+#
+# requires altermime, see http://www.pldaniels.com/altermime/
+#
+# just replace mlmmj-recieve (sic) with mlmmj-amime-receive, e.g. in /etc/aliases:
+# myml: "|/usr/bin/mlmmj-amime-receive -L /var/spool/mlmmj/myml/"
+#
+# put the footer-text for the different MIME-types into
+# control/amime-footer-text
+# control/amime-footer-html
+# control/amime-footer-base64
+#
+# Copyright 2008 by Gerd v. Egidy, <gerd@egidy.de>
+#
+# Licensed under MIT License, see LICENSE file coming with mlmmj
+#
+
+MLMMJRECIEVE=/usr/bin/mlmmj-recieve
+ALTERMIME=/usr/bin/altermime
+
+# check executables
+if ! [ -x $MLMMJRECIEVE ]; then
+ echo "can't find $MLMMJRECIEVE executable, aborting"
+ exit 1
+fi
+
+if ! [ -x $ALTERMIME ]; then
+ echo "can't find $ALTERMIME executable, aborting"
+ exit 1
+fi
+
+# read parameters
+I=1
+PARAM_L=0
+while [ $I -le $# ] && [ $PARAM_L == 0 ]; do
+ if [ "${!I}" == "-L" ]; then
+ PARAM_L=1
+ fi
+ I=$[$I+1]
+done
+
+if [ $PARAM_L == 1 ] && [ $I -le $# ]; then
+ MLPATH="${!I}"
+else
+ echo "parameter -L /path/to/listdir missing, aborting"
+ exit 1
+fi
+
+if ! [ -d "${MLPATH}" ]; then
+ echo "${MLPATH} is not existing or no directory, aborting"
+ exit 1
+fi
+
+CONTROLD="${MLPATH}/control"
+
+if ! [ -d "${CONTROLD}" ]; then
+ echo "${CONTROLD} is not existing or no directory, aborting"
+ exit 1
+fi
+
+# look for footer-files and build parameters
+
+if ! [ -f "${CONTROLD}/amime-footer-text" ]; then
+ echo "${CONTROLD}/amime-footer-text is not existing or no regular file, aborting"
+ exit 1
+fi
+
+PARAM="--disclaimer=${CONTROLD}/amime-footer-text"
+
+if [ -f "${CONTROLD}/amime-footer-html" ]; then
+ PARAM="${PARAM} --disclaimer-html=${CONTROLD}/amime-footer-html --htmltoo --force-for-bad-html"
+fi
+
+if [ -f "${CONTROLD}/amime-footer-base64" ]; then
+ PARAM="${PARAM} --disclaimer-b64=${CONTROLD}/amime-footer-base64"
+fi
+
+PARAM="${PARAM} --altersigned --log-syslog"
+
+# go to a dir where altermime can write it's tmp-files safely
+cd $MLPATH
+
+# pipe the calls
+$ALTERMIME --input=- ${PARAM} | $MLMMJRECIEVE "$@"
next reply other threads:[~2008-12-14 0:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-14 0:23 Gerd v. Egidy [this message]
2008-12-14 17:25 ` [PATCH] add MIME-aware footers Franky Van Liedekerke
2010-01-26 15:17 ` Gerd v. Egidy
2010-02-18 15:30 ` Gerd v. Egidy
2010-02-18 16:25 ` Morten Shearman Kirkegaard
2010-02-18 17:01 ` Gerd v. Egidy
2010-02-18 17:22 ` Morten Shearman Kirkegaard
2010-02-18 17:54 ` Mads Martin Jørgensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200812140123.13634.lists@egidy.de \
--to=lists@egidy.de \
--cc=mlmmj@mlmmj.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.