# HG changeset patch # User HIROSE Yuuji # Date 1438592435 -32400 # Node ID 7f9569a7e0ce863671c3de702a169b226fbb4736 # Parent 67b55dcf6fcb55f3cd72eb3aa35fe9fdfec2eb05 add sendmultipart.sh diff -r 67b55dcf6fcb -r 7f9569a7e0ce sendmultipart.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sendmultipart.sh Mon Aug 03 18:00:35 2015 +0900 @@ -0,0 +1,134 @@ +#!/bin/sh +# send multipart message via email +# (C)2012 by HIROSE Yuuji [yuuji(at)yatex.org] +# You can obtain the latest version of this script from: +# http://www.gentei.org/~yuuji/software/sendmultipart.sh +# Last modified Sat Aug 1 16:00:31 2015 on firestorm +# +# Typical usage: +# echo "Hi, here's photo I've taken. Enjoy" | \ +# sendmultipart.sh -t rcpt1@example.com,rcpt2@example.org \ +# -s "Photo of party" -f myself@example.net photo*.jpg + +myname=`basename $0` +usage () { + cat<<_EOU_ +$myname: Send multipart message via email +Usage: $0 -t recipient [options] file(s) + -t ToAddress Recipient address. + Multiple -t option and/or Multiple ToAddresses + delimited by comma are acceptable. + -s Subject Set subject to \`Subject' + -f FromAddress Set From: header to \`FromAddress' +_EOU_ + exit 0 +} + +conf=~/.sendmultipart +verbose=0 +hgid='$HGid$' +mailer=`echo $hgid|cut -d' ' -f2,3,4` + +base64byuu() { + uuencode -m $1 < $1 | tail +2 +} +base64=${BASE64:-base64byuu} +boundary="${mailer}_`date +%Y%m%d,%H%M%Sx`" +ctheader="Content-Type: Multipart/Mixed; + boundary=\"$boundary\"" +textcharset=iso-2022-jp +rcpts="" +rcptscomma="" + +[ -f $conf ] && . $conf # read rc file + +while [ x"$1" != x"" ]; do + case "$1" in + -t) shift; + rcpts="$rcpts${rcpts:+ }`echo $1|tr , ' '`" + rcptscomma="$rcptscomma${rcptscomma:+, }$1" + ;; + -s) shift; subject="`echo $1|nkf -M`" ;; + -f) shift; from="From: $1" ;; + -v) verbose=1 ;; + -h) usage ;; # -h helpオプション + --) shift; break ;; + *) break ;; # -で始まらないものが来たら即処理突入 + esac + shift +done +plainheader="Content-Type: text/plain; charset=$textcharset +Content-Transfer-Encoding: 7bit" + +tolower() { + tr '[A-Z]' '[a-z]' +} +cattextwithheader() { + coding=`nkf -g $1|cut -d' ' -f1` + case `echo $coding | tolower` in + iso-2022-jp) encoding=7bit cat=cat;; + *) encoding=base64 cat="$base64" ;; + esac + filename=`echo $1|nkf -M` + cat<