Upload
chinbom
View
219
Download
0
Embed Size (px)
Citation preview
7/31/2019 How Do I Send Email in UNIX
1/7
#1
The UNIX and Linux Forums
> Top Forums> UNIX forDummies Questions &
Answers> Answers toFrequently Asked Questions
> How do I send email?
MAIL question for
HP-Unix O/S
User Name Remember Me?
Password
google site
Forums Register Forum Rules Links Man Pages Albums FAQ Users Calendar Today's Posts
How do I send email?Learn how to send a UNIX or Linux email attachment from the command line.
Thread Tools Search this Thread Display Modes
02-26-2002
dsthompsonRegistered User
Join Date: Feb 2002
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
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'vetried 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
echo 'To:'$to > $LG_TOP/bin/dst.tmp
echo 'From:'$from >> $LG_TOP/bin/dst.tmp
echo 'Cc:'$cc >> $LG_TOP/bin/dst.tmpecho '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
L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest
7 11/18/2011
7/31/2019 How Do I Send Email in UNIX
2/7
Remove advertisements
#2
RECIPIENTS=$to,$cc
mail $RECIPIENTS < $LG_TOP/bin/dst.tmp1
Sponsored Links
02-26-2002
PerderaboUnix Daemon
Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9,679
Thanks: 26
Thanked 206 Times in 139 Posts
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
L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest
7 11/18/2011
7/31/2019 How Do I Send Email in UNIX
3/7
#
# 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 [email protected] -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
L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest
7 11/18/2011
7/31/2019 How Do I Send Email in UNIX
4/7
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 = *:* ]] ; dopwfield[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 "
print - "To: $TO "
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,'
question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest
7 11/18/2011
7/31/2019 How Do I Send Email in UNIX
5/7
Remove advertisements
#3
#4
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 at08:39 AM..
Sponsored Links
03-19-2002
skipperGuest
Posts: n/aBits: 0 [Banking]
Great post. Worked first time. Thanks
03-26-2002
L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest
7 11/18/2011
7/31/2019 How Do I Send Email in UNIX
6/7
Remove advertisements
Kelam_MagnusRegistered User
Join Date: Aug 2001
Location: DFW McKinney, TX,
Posts: 1,069
Thanks: 0
Thanked 2 Times in 2 Posts
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.
Sponsored Links
sending files as attachments | multiple attachments
More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Question on SCP and Mail
commandchris1234 UNIX for Dummies Questions & Answers 9
01-20-2008
03:54 PM
mail question here lostinfaith UNIX for Dummies Questions & Answers 105-12-2006
03:42 PM
I am not able to send mail
form unix to other mail
accounts.
chinnigd UNIX for Dummies Questions & Answers 104-06-2006
09:31 AM
can not send mail from
unix server to
company/yahoo mail
b5fnpct UNIX for Dummies Questions & Answers 511-22-2002
09:24 PM
Mail question? yxiao UNIX for Dummies Questions & Answers 210-15-2002
11:53 AM
L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest
7 11/18/2011
7/31/2019 How Do I Send Email in UNIX
7/7
Language Translations Powered by Google
vBCredits v1.4 Copyright 2007 - 2008, PixelFX S tudios
SEO by vBSEO
All times are GMT -4. The time now is 03:15 PM.
- Contact Us - The UNIX and Linux Forums - Learn UNIX and UNIX Commands - Archive -
Top
The UNIX and Linux Forums Content Copyright 1993-2011. All Rights Reserved.
Forum Operations by The UNIX and Linux Forums
Powered by: vBulletin, Copyright 2000 - 2006, Jelsoft Enterprises Limited.
L question for HP-Unix O/S - The UNIX and Linux Forums http://www.unix.com/how-do-i-send-email/4796-mail-quest