Attach a binary file to email in a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Attach a binary file to email in a script
# 15  
Old 01-06-2010
That script may work, but that is one of the worst paradigms I have ever seen...

The whole thing could/should have been a lot cleaner using "HERE" documents:

Code:
cat << EOF
 
Content-type:Application/Octet-Stream;name=$FILE_ATTACHMENT;type=Binary
Content-disposition:inline;filename=$FILE_ATTACHMENT
Content-transfer-encoding: X-UUencode
.
.
.
etc...
 
EOF

---------- Post updated at 09:52 AM ---------- Previous update was at 09:23 AM ----------

Okay, having said that, here is my revised script. The gallery can judge which program is more easily understood.

Code:
#!/bin/ksh
#----------------------------------------------------------------------#
# FILE:    duck                                                        #
# AUTHOR:  da quirkasaurus                                             #
# CREATED: Wed Jan  6 12:27:42 EST 2010                                #
# PURPOSE: email with attachments.                                     #
#                                                                      #
#----------------------------------------------------------------------#
 
 
clean_exit()
{
 
print usage: $0 to subject html_body_file attachment_file_nm
 
exit 0
 
}
 
 
 
#----------------------------------------------------------------------#
# Argument check.                                                      #
#----------------------------------------------------------------------#
if [[ $# -ne 4 ]]; then
  clean_exit
fi
 
 
TO="$1"
SUBJECT="$2"
BODY="$3"
FILE_ATTACHMENT="$4"
 
hostname=$( hostname )
 
FROM="${LOGNAME}@$hostname"
 
 
#----------------------------------------------------------------------#
# Verify file existance.                                               #
#----------------------------------------------------------------------#
if [[ ! -f "$BODY" ]]; then
  print html text file: $BODY not found
  exit 1
fi
 
if [[ ! -f "$FILE_ATTACHMENT" ]]; then
  print attachment file: $FILE_ATTACHMENT not found
  exit 1
fi
 
 
(
#----------------------------------------------------------------------#
# Create message header.                                               #
#----------------------------------------------------------------------#
cat << EOF
TO:${TO}
FROM:${FROM}
Mime-Version:1.0
Content-Type:Multipart/mixed;boundary=Message-Boundary-
Subject:${SUBJECT}
 
EOF
 
#----------------------------------------------------------------------#
# Print HTML content.                                                  #
#----------------------------------------------------------------------#
cat << EOF
 
--Message-Boundary-
Content-type:text/html;
Content-transfer-encoding: 7BIT
Content-Disposition:inline
Content-Description: Read Me First
 
EOF
 
cat $BODY
 
#----------------------------------------------------------------------#
# Create attachment.                                                   #
#----------------------------------------------------------------------#
cat << EOF
--Message-Boundary-
Content-type:Application/Octet-Stream;name=${FILE_ATTACHMENT};type=Binary
Content-disposition:inline;filename=${FILE_ATTACHMENT}
Content-transfer-encoding: X-UUencode
Message-Boundary-
 
EOF
 
#----------------------------------------------------------------------#
# Attach file.                                                         #
#----------------------------------------------------------------------#
uuencode ${FILE_ATTACHMENT} ${FILE_ATTACHMENT##*/}
 
) | /usr/lib/sendmail -t
 
exit 0

# 16  
Old 02-13-2010
I am trying to use the script but it does not send the attach on the email, I get the attach on the email but it empty.

How can I use that attach in the body of the HTML?

Thanks!

salu2
masch

Last edited by masch; 02-13-2010 at 06:40 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Check Error File attach and email zip file

I need something to say if these two file extensions exist in this directory *err and *rpt zip up these files into one zip file and email them to me. If they don't exist wait 2 hours and check again.... Not sure how to determine if I need to do an if then statement or a while true or a for... (1 Reply)
Discussion started by: xgringo
1 Replies

2. Shell Programming and Scripting

Convert binary file to csv and then back to the binary format

Hello *nix specialists, Im working for a non profit organisation in Germany to transport DSL over WLAN to people in areas without no DSL. We are using Linksys WRT 54 router with DD-WRT firmware There are at the moment over 180 router running but we have to change some settings next time. So my... (7 Replies)
Discussion started by: digidax
7 Replies

3. Shell Programming and Scripting

Script to attach file to mail

Hello, I have a .dat file containing one line. I need a script to read that line and make it part of the body and send a mail... Let's say the line is $line. I need the script to send a mail with the body "The last disposal feed is $line". Thanks (4 Replies)
Discussion started by: sfetea
4 Replies

4. Shell Programming and Scripting

Not able to attach text in body of email while sending mail with attachment

Hi, We have been trying to send mail with attachment and it is going fine, but when we try to attach a text to the body of the email, we find that the mail is going fine with the body text but the attachment is not going through. We are using ksh. The command that is successfull without the... (6 Replies)
Discussion started by: jmathew99
6 Replies

5. UNIX for Dummies Questions & Answers

How to attach a file in a email

Anyone can help me, in Unix, how can I attach a file in the email? Thank (3 Replies)
Discussion started by: ting123
3 Replies

6. Shell Programming and Scripting

attach multiple file in an email

Hello I have to attach multiple file as an email attachment. here is what i my understanding so far: 1. search in a certain directory that is there any specific file say for example .xml file exist or not 2. if exist then take those file name from the folder and attach it to another text... (1 Reply)
Discussion started by: osrukarigor
1 Replies

7. Shell Programming and Scripting

attach multiple files in email

I am trying to send multiple files as attachment in one email, I tried to search but couldn't find. Please let me know if any solutions. (2 Replies)
Discussion started by: mgirinath
2 Replies

8. UNIX for Dummies Questions & Answers

How to use "mail" to attach a file with an email?

echo "content" | mail email@address -s subject Where to attach a file with the email? (2 Replies)
Discussion started by: meili100
2 Replies

9. Shell Programming and Scripting

hi.. how to attach a tar file using shell script

Hi, How to attach a tar file using shell script or the command liine.. I following command just send the mail to the person with .txt file as body, I want to send it as attachment. /usr/sbin/sendmail -f "user1@daemon.com" user2@daemon.com <hi.txt The contents of the hi.txt will be... (1 Reply)
Discussion started by: madhumathikv
1 Replies

10. Shell Programming and Scripting

How to attach a file & send mail thru script

In shell script how can I attach a file and send a mail. suppose if I written like the following way usr/bin/mail 'subject" "mail_id" < file. a mail goes to the mail-id with the content of file.But I want the file to be atttached to the mail.How can I get it.is there any way for this. ... (9 Replies)
Discussion started by: Mar1006
9 Replies
Login or Register to Ask a Question