Admin/isatest/pmail
changeset 22410 da313b67a04d
child 27083 b70c889810cf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/isatest/pmail	Mon Mar 05 22:12:20 2007 +0100
@@ -0,0 +1,97 @@
+#!/usr/bin/env bash
+#
+# $Id$
+# Author: Gerwin Klein, TU Muenchen
+#
+# DESCRIPTION: send email with text attachments.
+# (works for "mail" command of SunOS 5.8)
+#
+
+PRG="$(basename "$0")"
+
+MIME_BOUNDARY="==PM_=_37427935"
+
+function usage()
+{
+  echo
+  echo "Usage: $PRG subject recipient <body> [<attachments>]"
+  echo
+  echo "  Send email with text attachments. <body> is a file."
+  echo
+  exit 1
+}
+
+function fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+#
+# print_attachment <file>
+#
+# print mime "encoded" <file> to stdout (text/plain, 8bit)
+#
+function print_attachment()
+{
+    local FILE=$1
+    local NAME=${FILE##*/}
+
+    cat <<EOF
+--$MIME_BOUNDARY
+Content-Type: text/plain
+Content-Transfer-Encoding: 8bit
+Content-Disposition: attachment; filename="$NAME"
+
+EOF
+    cat $FILE
+    echo
+}
+
+
+#
+# print_body subject <message-file> [<attachments>]
+#
+# prints mime "encoded" message with text attachments to stdout
+#
+function print_body()
+{
+    local SUBJECT=$1
+    local BODY=$2
+    shift 2
+
+    cat <<EOF
+Subject: $SUBJECT
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary="$MIME_BOUNDARY"
+
+--$MIME_BOUNDARY
+Content-Type: text/plain
+Content-Transfer-Encoding: 8bit
+
+EOF
+    cat $BODY
+    echo
+
+    for a in $@; do print_attachment $a; done
+
+    echo "--$MIME_BOUNDARY--"
+    echo 
+}
+
+## main
+
+# argument checking
+
+[ "$1" = "-?" ] && usage
+[ "$#" -lt "3" ] && usage
+
+SUBJECT="$1"
+TO="$2"
+BODY="$3"
+
+shift 3
+
+[ -r "$BODY" ] || fail "could not read $BODY"
+
+print_body "$SUBJECT" "$BODY" $@ | mail -t "$TO"