![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| How do I send email? How do I send an mail attachment from the command line? |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Question on SCP and Mail command | chris1234 | UNIX for Dummies Questions & Answers | 9 | 01-20-2008 11:54 AM |
| mail question here | lostinfaith | UNIX for Dummies Questions & Answers | 1 | 05-12-2006 11:42 AM |
| I am not able to send mail form unix to other mail accounts. | chinnigd | UNIX for Dummies Questions & Answers | 1 | 04-06-2006 05:31 AM |
| can not send mail from unix server to company/yahoo mail | b5fnpct | UNIX for Dummies Questions & Answers | 5 | 11-22-2002 05:24 PM |
| Mail question? | yxiao | UNIX for Dummies Questions & Answers | 2 | 10-15-2002 07:53 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
MAIL question for HP-Unix O/S
Has anyone written a script to attached a text file when sending an email using the MAIL command?
I wrote a Unix Script to email an end-user a text file. I want the file to be an attachment. I've tried the unix command uuencode but this seems to be for a binary file. My text file is garbage (binary) when it's opened from within the email. --------------------------------------------------------- ****** SAMPLE SCRIPT BELOW ****** --------------------------------------------------------- uuencode $LG_TOP/bin/ARPSONIC.txt $LG_TOP/bin/SONIC.txt > $LG_TOP/bin/dst.tst to=dsthompson@upslogistics.com from=dsthompson@upslogistics.com cc=dsthompson@upslogistics.com echo 'To:'$to > $LG_TOP/bin/dst.tmp echo 'From:'$from >> $LG_TOP/bin/dst.tmp echo 'Cc:'$cc >> $LG_TOP/bin/dst.tmp echo 'Return-receipt: Yes' >> $LG_TOP/bin/dst.tmp echo 'Subject: UPS Logistics Files ' >> $LG_TOP/bin/dst.tmp echo 'Dear Customer' >> $LG_TOP/bin/dst.tmp echo ' '>> $LG_TOP/bin/dst.tmp echo 'Please find attached File' >> $LG_TOP/bin/dst.tmp echo ' '>> $LG_TOP/bin/dst.tmp echo 'Thank you'>> $LG_TOP/bin/dst.tmp echo ' '>> $LG_TOP/bin/dst.tmp echo 'Deborah S. Thompson'>> $LG_TOP/bin/dst.tmp cat $LG_TOP/bin/dst.tmp $LG_TOP/bin/dst.tst > $LG_TOP/bin/dst.tmp1 RECIPIENTS=$to,$cc mail $RECIPIENTS < $LG_TOP/bin/dst.tmp1 |
| Forum Sponsor | ||
|
|
|
||||
|
I had to write a script on HP-UX that would send an ascii file as a mime attachment but in such a way that a non mime mailer could read it. This was to satisfy all of our customers at once. Here it is...
Code:
#! /usr/bin/ksh # # This script takes two ascii files and mails them. One file is # the main body of the message. The second file is sent as an ascii # mime attachment. But everything is kept in ascii so that users with # non-mime mail user agents can deal with it # # # Options # # -t addressee (required) # -a address (required) # -b body (required) # -s subject (optional) # -A attachment (optional) # # mimetool -t "Joe Blow" -a jblow@abc.com -b body.txt -A attach.txt # # Here body.txt and attach.txt are files. The name of the body file # isn't too important. The name of the attachment file is important # since it will be sent as well as the contents. A Microsoft OS uses # the name to figure out what to do. It knows what a .txt file is but # it will get mixed up with a .junk file. ((error=0)) while getopts ':t:a:b:A:s:' opt ; do case $opt in t) TO=$OPTARG ;; a) ADDRESS=$OPTARG ;; b) BODY=$OPTARG ;; A) ATTACHMENT=$OPTARG ;; s) SUBJECT=$OPTARG ;; \?) print -u2 what is -${OPTARG}? ((error=error+1)) ;; :) print -u2 $OPTARG need an argument ((error=error+1)) ;; esac done if [[ -z $TO ]] ; then print -u2 "-t NAME is required" ((error=error+1)) fi if [[ -z $ADDRESS ]] ; then print -u2 "-a ADDRESS is required" ((error=error+1)) fi if [[ -z $BODY ]] ; then print -u2 "-b BODY is required" ((error=error+1)) fi if [[ ! -f $BODY || ! -r $BODY ]] ; then print -u2 "-b $BODY is not a readable file" ((error=error+1)) fi if [[ -z $ATTACHMENT ]] ; then print -u2 "-A ATTACHMENT is required" ((error=error+1)) fi if [[ ! -f $ATTACHMENT || ! -r $ATTACHMENT ]] ; then print -u2 "-b $ATTACHMENT is not a readable file" ((error=error+1)) fi if ((error)) ; then print -u2 "error in parameter list...exiting" exit 1 fi pwentry=$(grep "^$(id -un):" /etc/passwd) ((index=0)) while [[ $pwentry = *:* ]] ; do pwfield[index]=${pwentry%%${pwentry##*([!:])}} pwentry=${pwentry##*([!:]):} ((index=index+1)) done pwfield[index]=${pwentry} myname=${pwfield[4]%%,*} myaddr=${pwfield[0]} BOUNDARY='=== This is the boundary between parts of the message. ===' { print - "From: $myname <${myaddr}>" print - "To: $TO <${ADDRESS}>" if [[ -n $SUBJECT ]] ; then print - 'Subject:' $SUBJECT fi print - 'MIME-Version: 1.0' print - 'Content-Type: MULTIPART/MIXED; ' print - ' BOUNDARY='\"$BOUNDARY\" print - print - ' This message is in MIME format. But if you can see this,' print - " you aren't using a MIME aware mail program. You shouldn't " print - ' have too many problems because this message is entirely in' print - ' ASCII and is designed to be somewhat readable with old ' print - ' mail software.' print - print - "--${BOUNDARY}" print - 'Content-Type: TEXT/PLAIN; charset=US-ASCII' print - cat $BODY print - print - print - "--${BOUNDARY}" print - 'Content-Type: TEXT/PLAIN; charset=US-ASCII; name='${ATTACHMENT} print - 'Content-Disposition: attachment; filename='${ATTACHMENT} print - cat $ATTACHMENT print - print - "--${BOUNDARY}--" } | /usr/lib/sendmail $ADDRESS exit 0 Last edited by Perderabo; 04-23-2002 at 04:39 AM. |
|
||||
|
Excellent work! This is better than using ELM even though it works, but is a little awkward.
Thanks for the great script. You should share this on www.unixreview.com. They have a contest for the best scripts each month.
__________________
My brain is your brain |
||||
| Google The UNIX and Linux Forums |