Visit Our UNIX and Linux User Community


Dynamic email attachments


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Dynamic email attachments
# 1  
Old 04-05-2011
Question Dynamic email attachments

Hi all,

I am quite new to Unix shell scripting and I am trying to create a common function to send mail that is capable of adding multiple attachments. The script works if there is only one attachment. But when there is more than one, it just won't work. It gives a syntax message "Usage: uuencode [-m] [infile] remotefile". Can anyone help what I am doing wrong here? Below is a snippet of the function "func_send_mail" script:

Code:
 
 typeset email=$1;
 typeset subject=$2;
 typeset message=$3;
 typeset sourceAttachments=$4;
 
 typeset attachmentString="";
 typeset fileNameIndex="";
 typeset fileNameAttachment="";
 typeset fileAttachmentPath="";
 
 
# loop through the space delimited list of file attachments(with the path)
 for fileAttachmentPath in $sourceAttachments
 do
  # get the filename from the path
  set -A varray `echo "$fileAttachmentPath"| awk '{numberOfFields=split($0,fields,"/")
  for(i=1;i<=numberOfFields;i++)
  print fields[i]}'`
  fileNameIndex=`expr ${#varray[*]} - 1`
  fileNameAttachment=${varray[$fileNameIndex]}
 
  # assign attachment parameters to this string
  if [ -n "${attachmentString}" ]; 
  then
   attachmentString="$attachmentString; uuencode $fileAttachmentPath $fileNameAttachment";
  else
   attachmentString="uuencode $fileAttachmentPath $fileNameAttachment";
  fi
 done
 
 # send mail with attachments:
 ( echo "${message}"; ${attachmentString} ) | mailx -s "${subject}" "${email}"

Below is a sample usage of the function i created:
Code:
func_send_mail "testmail@email.com" "Test mail" "This is just a test email" "/home/user/logs/infotask_20110401.log /home/user/logs/infotask_20110402.log /home/user/logs/infotask_20110403.log"


Thanks.

Last edited by dongzky; 04-05-2011 at 04:50 AM..
# 2  
Old 04-05-2011
Try this one when sending your mail:
Code:
 ( echo "${message}"; eval ${attachmentString} ) | mailx -s "${subject}" "${email}"

This User Gave Thanks to Dahu For This Post:
# 3  
Old 04-05-2011
Needs an "eval" because you are composing a command line then executing that line later. I also needed a "-m" on mailx to get the attachments to be attachments. You may not need this - it depends on what Operating System and version you have (It always helps to state what you have).

(echo "${message}"; eval ${attachmentString}) | mailx -s "${subject}" "${email}"

On my test the attachments were not in a useful format. If your logfiles are in unix format and you want to read them with something like Windows Notepad it is necessary to convert the files with "ux2dos" (or "unix2dos") in the pipeline to "uuencode".

Last edited by methyl; 04-05-2011 at 09:33 AM..
This User Gave Thanks to methyl For This Post:
# 4  
Old 04-07-2011
hi dahu, methyl, thanks a lot. and all it needed was that magic word! Smilie

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. HP-UX

Email Using uuenview w/ Multiple Attachments

HP-UX mbhp7640 B.11.31 U ia64 4294967295 unlimited-user license Our database builds a MIME compliant html email, then cats that to sendmail - no problem. Due to horrible issues with the native uuencode, we long ago began using uuenview to encode our attachments - no problem. An example is... (1 Reply)
Discussion started by: bubba77
1 Replies

2. Shell Programming and Scripting

Sending an email with a body and attachments using uuencode

Hi, Im having a bit of an issue with using the uuencode command and sending out an email. My aim is to send an email out which has a body and also have attachments. Currently I can either get one or the other and not both on the same email. uuencode... (4 Replies)
Discussion started by: 02JayJay02
4 Replies

3. Shell Programming and Scripting

How to send email with multiple attachments ?

Hello , I am trying to send an email with two attachments . I have tried all previous suggestion in this forum but none worked. I could send one attachment in an email by uuencode $file "$file" | mailx -m -s "File" xxx@xx.com but unable to send multiple attachments . I have tried ... (8 Replies)
Discussion started by: RaviTej
8 Replies

4. Shell Programming and Scripting

Email Attachments in shell script

Hi Fellas, I have a script that queries a sybase DB through isql and appends to a file, say file.csv I want to use the mail command in the shell script to email the file to me. i tried the following command but it doesn't work. can any one suggest whats wrong here. Note that i need the file... (2 Replies)
Discussion started by: Irishboy24
2 Replies

5. UNIX for Dummies Questions & Answers

Send Files as Attachments through email

Dear Members, I am trying to send a file as an attachment from the command prompt in Linux. I am using the following: (echo "Find attached Exception Report"; uuencode $DATA_TOP/out/data/$err_rpt_file $err_rpt_file)|/bin/mailx -s "***Exceptions Found" davidk@xyz.com Here err_rpt_file... (2 Replies)
Discussion started by: sandeep_1105
2 Replies

6. HP-UX

Sending Unix files as attachments in an email

Hi, I am executing the following command in order to send a file as an attachment: mailx -s "Subject" emailID@xyz.com < Testfile.txt Instead of attaching the file Testfile.txt, it is writing the contents of the file in the email message body. Please advise on how I can send the file as an... (7 Replies)
Discussion started by: sangharsh
7 Replies

7. Shell Programming and Scripting

Email with messagebody and attachments

Hi Friends, I am using perl on windows environment and i wish to send out an email with body of the mail referring from a text file and attaching a file. Perl should read the body of the mail from a file say bodyofmail.txt and attach a file say attachment.txt. I would like to do both in the same... (0 Replies)
Discussion started by: ganga.dharan
0 Replies

8. UNIX for Dummies Questions & Answers

Sending email attachments

Hello, I've search the forum, but I cannot find an answer to my specific question. I'm trying to send some files to my professor. Upon his request, I used the following: tar -cvf vh.tar vh_part1.c vh_part2.c vh_part3.c vh_part4.c vh_sample_run15.txt uuencode vh.tar vh.tar > proj1 mail... (2 Replies)
Discussion started by: venush
2 Replies

9. UNIX for Dummies Questions & Answers

Email Attachments

I use metasend to send an attachment to an email. The attached file has a .csv extension however when the email is received the extension is changed to .att. Does anyone know why ? I need the name to remain as .csv (1 Reply)
Discussion started by: fabbas
1 Replies

10. UNIX for Dummies Questions & Answers

Blocking email attachments

Dear Friends, Is there any way to block incoming emails with attachments or move them in specified directory on. Can anybody help? Yours kam (10 Replies)
Discussion started by: kamlakar
10 Replies

Featured Tech Videos