======================================================= Misc: Sending attachments from command line ======================================================= :Title: Misc: Sending attachments from command line :Author: Douglas O'Leary :Description: Misc: Sending attachments from command line :Date created: 02/2001 :Date updated: 08/2010 :Disclaimer: Standard: Use the information that follows at your own risk. If you screw up a system, don't blame it on me... The outline below shows how to send html and/or text files as attachments to mail and it works. I had problems, recently, getting it to work with gzip'ed tarballs. The attachment would come through, but it would be corrupted - winzip hated it. I have a suspicion it's the antiquated version of uuencode that comes with HPUX. After quite a bit of searching, I found mpack on one of the hp porting centers. This guy's much simpler than the process below. The command line looks like:: mpack -s ${subject} ${file} ${recipient} It's got some limitations; doesn't appear to support any method of changing the sendor name (similar to -r arg to mailx command). But, it does what it does very well; have to say I'm impressed One of the limitations is that I'm running this crap on hpux. That tends to have a limited subset of the normal gnu or freeware utilities. Other OSes would probably do well with mutt or some of the other solutions I saw via web searches If you want to go hard core, the mime format for sending normal html or text based messages as attachments is as follows:: ( cat << eof From: root@omniserv.joe-blow.com To: doleary@joe-blow.com Subject: Omnireport: ${Date} Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="i_hart_dkoleary" --${Bound} This is a test of the emergency broadcasting system. This is only a test. Had this been an actual emergency, you'd be instructed to kiss your ass goodbye. This was a test. --${Bound} Content-Type: text/plain; name="omnirpt_${Date_ext}.html"; charset=US-ASCII Content-Disposition: attachment; filename="omnirpt_${Date_ext}.html" Content-Transfer-Encoding: 7bit eof cat ${Tmp} echo "--${Bound}" ) | sendmail -t -v Obviously, there are LOTS of alternatives to the scripting; however, its' the mime format that's important. Things of note: #. To: Multiple addresses should be separated by commas. #. Bounday entires are defined in the first content-type line. #. Bounday entries in the text start with the initial -- (dash dash). #. Content-Disposition: attachment; makes the text the attachment. #. filename="omnirpt_${Date_ext}.html" gives the attachment the filename on the remote side. #. sendmail -t causes sendmail to read the recipients from the message itself instead of from the command line.