Also moved it from etc/ to uip/. Updated man pages.
Note: The splitting of large messages by sendfile/viamail/or elsewhere
seems not to be available anymore, although it had been documented in the
man page. Either the man pages don't match the code or I've not found this
function yet.
scan.timely scan.unseen
# templates and scripts from which non-static files are generated
-GENERATED_FILE_SRCS = mhn.defaults.sh mhn.find.sh sendfiles.in
-
-# scripts generated using above GENERATED_FILE_SRCs; don't add binaries
-# to this list, as they'll get installed with INSTALL_SCRIPT and won't
-# be stripped.
-GENERATED_BIN_FILES = sendfiles
+GENERATED_FILE_SRCS = mhn.defaults.sh mhn.find.sh
# non-scripts generated using above GENERATED_FILE_SRCs
GENERATED_ETC_FILES = mhn.defaults
# ========= DEPENDENCIES FOR BUILDING ==========
-all: $(GENERATED_BIN_FILES) $(GENERATED_ETC_FILES)
+all: $(GENERATED_ETC_FILES)
mhn.defaults: $(srcdir)/mhn.defaults.sh $(MHNSEARCHPROG)
rm -f $@
$(srcdir)/mhn.defaults.sh $(MHNSEARCHPATH) $(MHNSEARCHPROG) > $@
-sendfiles: $(srcdir)/sendfiles.in Makefile
- rm -f $@
- $(SED) -e 's,%libdir%,$(libdir),' < $(srcdir)/sendfiles.in > $@
-
-install: install-bin-files install-etc-files
-
-install-bin-files:
- $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir)
- for script in $(GENERATED_BIN_FILES); do \
- $(INSTALL_SCRIPT) $$script $(DESTDIR)$(bindir)/$$script; \
- done
+install: install-etc-files
install-etc-files:
$(top_srcdir)/mkinstalldirs $(DESTDIR)$(etcdir)
fi; \
done
-uninstall: uninstall-bin-files uninstall-etc-files
-
-uninstall-bin-files:
- for script in $(GENERATED_BIN_FILES); do \
- rm -f $(DESTDIR)$(bindir)/$$script; \
- done
+uninstall: uninstall-etc-files
uninstall-etc-files:
for file in $(STATIC_FILES) $(GENERATED_ETC_FILES); do \
rm -f *~
clean: mostlyclean
- rm -f $(GENERATED_ETC_FILES) $(GENERATED_BIN_FILES)
+ rm -f $(GENERATED_ETC_FILES)
distclean: clean
rm -f Makefile
+++ /dev/null
-#!/bin/sh
-#
-# Send multiples files and/or directories as a tar/compressed
-# image, in a MIME message.
-#
-
-FROM=
-
-# compression method (none, gzip or compress)
-METHOD=none
-# compression filter
-COMPRESS=cat
-# uncompression filter
-UNCOMPRESS=cat
-# compression description to append to content-type
-CONVERSION=
-
-# default compression method based on installed software
-# prefer compress over gzip for backward compatibility
-if command -v compress >/dev/null 2>&1 ; then
- METHOD=compress
-elif command -v gzip >/dev/null 2>&1 ; then
- METHOD=gzip
-fi
-
-# handle command-line options to override compression method
-while [ $# -gt 3 ]; do
- case "$1" in
- -gzip)
- METHOD=gzip
- shift
- ;;
- -compress)
- METHOD=compress
- shift
- ;;
- -none)
- METHOD=none
- shift
- ;;
- *)
- break
- ;;
- esac
-done
-
-# set variables based on chosen compression method
-if [ $METHOD = compress ]; then
- COMPRESS=compress
- UNCOMPRESS=uncompress
- CONVERSION="; x-conversions=compress"
-elif [ $METHOD = gzip ]; then
- COMPRESS="gzip -c"
- UNCOMPRESS="gzip -dc"
- CONVERSION="; x-conversions=gzip"
-fi
-
-if [ ! -z "$PERSON" ]; then
- FROM="-from $PERSON"
-fi
-
-if [ $# -lt 3 ]; then
- echo 'usage: sendfiles: "mailpath" "subject-string" directory-or-file ...' 1>&2
- exit 1;
-fi
-
-mailpath="$1"
-echo "mailpath = $mailpath" 1>&2
-shift
-
-subject="$1"
-echo "subject-string = $subject" 1>&2
-shift
-
-echo "files = $*" 1>&2
-
-tar cvf - "$@" | $COMPRESS | \
- %libdir%/viamail -to "$mailpath" -subject "$subject" \
- -parameters "type=tar$CONVERSION" \
- -comment "extract with $UNCOMPRESS | tar xvpf -" \
- -verbose $FROM
can not
locate every partial necessary to reassemble the message, it will
not store anything.
+RE
+.PP
+By using the
+.B \-auto
+switch,
+.B mhstore
+will automatically do the extraction for you:
+.PP
+.RS 5
+.nf
+% mhlist 5-8
+ msg part type/subtype size description
+ 5 message/partial 47K part 1 of 4
+ 6 message/partial 47K part 2 of 4
+ 7 message/partial 47K part 3 of 4
+ 8 message/partial 18K part 4 of 4
+% mhstore 5-8
+reassembling partials 5,6,7,8 to folder inbox as message 9
+% mhlist -verbose 9
+ msg part type/subtype size description
+ 9 application/octet-stream 118K
+ (extract with uncompress | tar xvpf -)
+ type=tar
+ conversions=compress
+% mhstore -auto 9
+-- tar listing appears here as files are extracted
+.fi
+.RE
+.PP
+As the second
+.B tar
+listing is generated, the files are extracted.
+A prudent user will never put
+.B \-auto
+in the profile.
+The correct procedure is to first use
+.B mhlist
+to find out what will be extracted. Then
+.B mhstore
+can be invoked with
+.B \-auto
+to perform the extraction.
.SS "External Access"
For contents of type message/external-body,
\fImhstore\fR supports these access-types:
.\"
.TH SENDFILES %manext1% "%nmhdate%" MH.6.8 [%nmhversion%]
.SH NAME
-sendfiles \- send multiple files via a MIME message
+sendfiles \- send multiple files in a MIME message
.SH SYNOPSIS
.HP
.na
.B sendfiles
-.I mailpath
+.I recipient
.I subject
.I file1
.RI [ file2
The shell script
.BR sendfiles ,
is used to send a collection
-of files and directories via electronic mail.
-.PP
-.RS 5
-sendfiles mailpath \*(lqsubject\*(rq files\0...
-.RE
-.PP
-.B sendfiles
-will archive the files and directories you name
-with the
-.B tar
-command, and then mail the compressed
-archive to the \*(lqmailpath\*(rq with the given \*(lqsubject\*(rq.
-.PP
-Sometimes you want
-.B sendfiles
-to pause after posting a partial
-message. This is usually the case when you are running
-.B sendmail
-and expect to generate a lot of partial messages. If the first
-argument given to
+of files via electronic mail.
.B sendfiles
-starts with a dash, then it is
-interpreted as the number of seconds to pause in between postings,
-e.g.,
-.PP
-.RS 5
-sendfiles -30 mailpath \*(lqsubject\*(rq files\0...
-.RE
-.PP
-will pause 30 seconds in between each posting.
-.PP
-.SS "Extracting the Received Files"
-When these messages are received, invoke
-.B mhstore
-once for
-the list of messages. The default is for
-.B mhstore
-to store
-the combined parts as a new message in the current folder, although
-this can be changed using storage formatting strings. You can then
-use
-.B mhlist
-to find out what's inside; possibly followed by
-.B mhstore
-again to write the archive to a file where you can
-subsequently uncompress and untar it. For instance:
-.PP
-.RS 5
-.nf
-% mhlist 5-8
- msg part type/subtype size description
- 5 message/partial 47K part 1 of 4
- 6 message/partial 47K part 2 of 4
- 7 message/partial 47K part 3 of 4
- 8 message/partial 18K part 4 of 4
-% mhstore 5-8
-reassembling partials 5,6,7,8 to folder inbox as message 9
-% mhlist -verbose 9
- msg part type/subtype size description
- 9 application/octet-stream 118K
- (extract with uncompress | tar xvpf -)
- type=tar
- conversions=compress
-% mhstore 9
-% uncompress < 9.tar.Z | tar xvpf -
-.fi
-.RE
-.PP
-Alternately, by using the
-.B \-auto
-switch,
-.B mhstore
-will automatically do the extraction for you:
-.PP
-.RS 5
-.nf
-% mhlist 5-8
- msg part type/subtype size description
- 5 message/partial 47K part 1 of 4
- 6 message/partial 47K part 2 of 4
- 7 message/partial 47K part 3 of 4
- 8 message/partial 18K part 4 of 4
-% mhstore 5-8
-reassembling partials 5,6,7,8 to folder inbox as message 9
-% mhlist -verbose 9
- msg part type/subtype size description
- 9 application/octet-stream 118K
- (extract with uncompress | tar xvpf -)
- type=tar
- conversions=compress
-% mhstore -auto 9
--- tar listing appears here as files are extracted
-.fi
-.RE
+will mail the files in one message with the given \*(lqsubject\*(rq
+to the \*(lqrecipient\*(rq.
+Take care not to generate too large messages, as there usually are
+size limits enforced by the MTAs.
.PP
-As the second
-.B tar
-listing is generated, the files are extracted.
-A prudent user will never put
-.B \-auto
-in the profile.
-The correct procedure is to first use
-.B mhlist
-to find out what will be extracted. Then
-.B mhstore
-can be invoked with
-.B \-auto
-to perform the extraction.
+To extract received files, use
+.B mhstore .
.SH FILES
.fc ^ ~
.fi
.SH "PROFILE COMPONENTS"
-.fc ^ ~
-.nf
-.ta 2.4i
-.ta \w'ExtraBigProfileName 'u
-^Path:~^To determine the user's mail storage
-^Current\-Folder:~^To find the default current folder
-.fi
+None
.SH "SEE ALSO"
-mhbuild(1), mhlist(1), mhshow(1), mhstore(1).
-.I "Proposed Standard for Message Encapsulation"
-(RFC\-934)
+send(1), mhlist(1), mhstore(1).
.SH DEFAULTS
.nf
-.RB ` \-noverbose '
.fi
.SH CONTEXT
None
+
+.SH HISTORY
+.PP
+This is a new and simpler version of
+.B sendfiles ,
+which directly invokes
+.B send .
+The old one had invoked
+.B viamail .
+The old version had been able to send whole directories, be automatically
+tarballing them. This new version is not able to do so.
+The old man page had described some kind of automatical splitting of
+large content into `message/partial' parts. However, it appears as if this
+had been removed earlier, only its documentation remained.
# commands to build
CMDS = ali anno burst comp dist flist folder forw mmh mark mhbuild \
mhlist mhmail mhparam mhpath mhshow mhstore msgchk \
- new packf pick prompter refile repl rmf rmm scan send show \
+ new packf pick prompter refile repl rmf rmm scan send sendfiles show \
sortm whatnow
# commands that are links to other commands
msgchk.c new.c packf.c pick.c picksbr.c \
prompter.c rcvdist.c rcvpack.c rcvstore.c rcvtty.c \
refile.c repl.c replsbr.c rmf.c rmm.c scan.c scansbr.c send.c \
- sendsbr.c show.c slocal.c sortm.c spost.c termsbr.c \
+ sendsbr.c sendfiles.sh show.c slocal.c sortm.c spost.c termsbr.c \
whatnow.c whatnowproc.c
# auxiliary files
send: send.o sendsbr.o annosbr.o distsbr.o $(LOCALLIBS)
$(LINK) send.o sendsbr.o annosbr.o distsbr.o $(LINKLIBS)
+sendfiles: sendfiles.sh
+ cp sendfiles.sh sendfiles
+ chmod +x sendfiles
+
show: show.o mhlsbr.o termsbr.o $(LOCALLIBS)
$(LINK) show.o mhlsbr.o termsbr.o $(LINKLIBS) $(TERMLIB)
--- /dev/null
+#!/bin/sh
+#
+# Send multiples files non-interactively
+
+# adjust if needed
+attachment_header='Attach'
+
+
+if [ $# -lt 3 ]; then
+ echo 'usage: sendfiles RECIPIENT SUBJECT FILES...' 1>&2
+ exit 1;
+fi
+
+rcpt="$1"
+shift
+subject="$1"
+shift
+
+cat 1>&2 <<!
+Recipient: $rcpt
+Subject: $subject
+Files: $*
+!
+
+draft=`mktemp /tmp/sendfiles.XXXXXX`
+trap 'rm -f "$draft"' 1 2 3 15
+cat >"$draft" <<!
+To: $rcpt
+Subject: $subject
+!
+for i in "$@" ; do
+ echo "$attachment_header: $i" >>"$draft"
+done
+
+send "$draft"