Sponsored Content
Top Forums Shell Programming and Scripting Need help in sending html mail with attachment Post 302933063 by gandolf989 on Tuesday 27th of January 2015 08:45:02 AM
Old 01-27-2015
Although it hasn't been updated in awhile, I have had good luck sending emails with Perl and the MIME::Lite package.

MIME::Lite - search.cpan.org

It is capable of sending UTF8 text, and should more than handle sending html. In the past I have used mpack and uuencode to send attachments through Unix. But the Perl libraries work much better and produce code that is easier to read. There should be a number of scripts available that you can download and run, mostly as is.

If you have static HTML that you need to include you can generate that though the qq{} structure. It allows multiple lines in a single scalar.

Code:
my $email_body = 
qq{ From: Someone <$MAILFROM>"
To: Someone <${MAILTO}>"
Subject:' $SUBJECT
MIME-Version: 1.0'
Content-Type: MULTIPART/MIXED; '
 BOUNDARY='\"$BOUNDARY\"

 This message is in MIME format. But if you can see this,'
 you aren't using a MIME aware mail program. You shouldn't "
 have too many problems because this message is entirely in'
 ASCII and is designed to be somewhat readable with old '
 mail software.'

--${BOUNDARY}"
Content-Type: TEXT/PLAIN; charset=US-ASCII'

cat $CONTENT


--${BOUNDARY}"
Content-Type: TEXT/PLAIN; charset=US-ASCII; name='${CONTENT}
Content-Disposition: attachment; filename='${CONTENT_F}

cat ${CONTENT}

--${BOUNDARY}--"
};

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Error when sending mail attachment

I have been sending an email attachment from my unix box, but keep getting an error? All though the recipient still receives the email and attachment. Will this error cause problems in the future and how to I cure it? $ uuencode PReSvPRINTER.txt file | mailx -s "File" me@world.com uuencode:... (1 Reply)
Discussion started by: dbrundrett
1 Replies

2. UNIX for Dummies Questions & Answers

Sending attachment thru a mail

Is there any way we can send file attachemnts through mails from a unix server. Does the 'mail' command have such an option ?? (1 Reply)
Discussion started by: Rohini Vijay
1 Replies

3. Shell Programming and Scripting

Sending HTML attachment through mail

Hi I am new to unix and scripting.I am trying to send a html file as an attachment. SUBJECT="Type of Exceptions in Application" TO=Sushovan.Samals@gmail.com SPOOLFILE=/data/reg/tlogs/Monitor.html #echo "Send the E-mail message..." uuencode $SPOOLFILE $SPOOLFILE | mailx -s "$SUBJECT" $TO... (2 Replies)
Discussion started by: sushovan
2 Replies

4. UNIX for Dummies Questions & Answers

How to send html file in a mail not as an attachment but it should display in the mail in table for

Hi The below script working when we are sending the html as attachment can u please guide how to send thesmae data in table form direct in the mail and not in mail attachment . cat Employee.sql SET VERIFY OFF SET PAGESIZE 200 SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON - HEAD... (0 Replies)
Discussion started by: mani_isha
0 Replies

5. Shell Programming and Scripting

Problem in sending inline html with an attachment using sendmail

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=border --border Content-Type: text/html Content-Disposition: inline <html><body><h2>This text should be displayed with html formatting</h2></body></html> --border Content-Type: text/plain Content-Disposition: attachment This text... (2 Replies)
Discussion started by: thulasidharan2k
2 Replies

6. UNIX for Dummies Questions & Answers

Sending html email with html attachment

Hello, I have a script which is sending an html file as an attachment. #!/usr/bin/ksh export MAILTO="user@company.com" export CONTENT="/usr/tmp/file.html" export SUBJECT="EmailSubject" ( echo "Subject: $SUBJECT" echo "MIME-Version: 1.0" echo "Content-Type: text/html" echo... (0 Replies)
Discussion started by: sreenathkg
0 Replies

7. Shell Programming and Scripting

Sending a csv attachment and html text together.

Hello, I need to send below text (in a file ABC)as html text in mail body and the same as csv attachment 1,2,3 4,5,6 7,8,9 but to send as html text in mailbody we use echo "Subject: Report " | cat - ABC | /usr/lib/sendmail -t a@xyz.com and to send as an attachment in csv format we... (9 Replies)
Discussion started by: skhichi
9 Replies

8. UNIX for Advanced & Expert Users

Sending mail with attachment

Hi, I am using Sun solaris OS unix server I am trying to send mail with an attachment using below script cat test.txt;uuencode test.txt test.txt|mailx -s "$subject" someone@somewhere I m getting mails but with no attachment. Hence i manipulate the script as below and i am... (2 Replies)
Discussion started by: sv0081493
2 Replies

9. Shell Programming and Scripting

HTML mail with Attachment

Hi, I am using the below code: #!/bin/ksh SUBJ="Send mail from Unix with file attachments" TO=sudha.viswanathan@jpmorgan.com CC=sudha.viswanathan@jpmorgan.com ( cat << ! To : ${TO} Subject : ${SUBJ} Cc : ${CC} ! cat << ! MIME-Version: 1.0 Content-Type: text/html `cat... (1 Reply)
Discussion started by: sudvishw
1 Replies

10. How to Post in the The UNIX and Linux Forums

Sending a mail with different attachment in AIX

How to Send a mail with multiple attachment also differenet extension using uuencode in AIX. Can you please help me. Its so urgent. Thanks. Regards, Swapnil ---------- Post updated at 05:37 AM ---------- Previous update was at 05:35 AM ---------- I have below code. But attachment... (1 Reply)
Discussion started by: Swapnil Mawle
1 Replies
MIME::Field::ContType(3pm)				User Contributed Perl Documentation				MIME::Field::ContType(3pm)

NAME
MIME::Field::ContType - a "Content-type" field DESCRIPTION
A subclass of Mail::Field. Don't use this class directly... its name may change in the future! Instead, ask Mail::Field for new instances based on the field name! SYNOPSIS
use Mail::Field; use MIME::Head; # Create an instance from some text: $field = Mail::Field->new('Content-type', 'text/HTML; charset="US-ASCII"'); # Get the MIME type, like 'text/plain' or 'x-foobar'. # Returns 'text/plain' as default, as per RFC 2045: my ($type, $subtype) = split('/', $field->type); # Get generic information: print $field->name; # Get information related to "message" type: if ($type eq 'message') { print $field->id; print $field->number; print $field->total; } # Get information related to "multipart" type: if ($type eq 'multipart') { print $field->boundary; # the basic value, fixed up print $field->multipart_boundary; # empty if not a multipart message! } # Get information related to "text" type: if ($type eq 'text') { print $field->charset; # returns 'us-ascii' as default } PUBLIC INTERFACE
boundary Return the boundary field. The boundary is returned exactly as given in the "Content-type:" field; that is, the leading double-hyphen ("--") is not prepended. (Well, almost exactly... from RFC 2046: (If a boundary appears to end with white space, the white space must be presumed to have been added by a gateway, and must be deleted.) so we oblige and remove any trailing spaces.) Returns the empty string if there is no boundary, or if the boundary is illegal (e.g., if it is empty after all trailing whitespace has been removed). multipart_boundary Like "boundary()", except that this will also return the empty string if the message is not a multipart message. In other words, there's an automatic sanity check. type Try real hard to determine the content type (e.g., "text/plain", "image/gif", "x-weird-type", which is returned in all-lowercase. A happy thing: the following code will work just as you would want, even if there's no subtype (as in "x-weird-type")... in such a case, the $subtype would simply be the empty string: ($type, $subtype) = split('/', $head->mime_type); If the content-type information is missing, it defaults to "text/plain", as per RFC 2045: Default RFC 2822 messages are typed by this protocol as plain text in the US-ASCII character set, which can be explicitly specified as "Content-type: text/plain; charset=us-ascii". If no Content-Type is specified, this default is assumed. Note: under the "be liberal in what we accept" principle, this routine no longer syntax-checks the content type. If it ain't empty, just downcase and return it. NOTES
Since nearly all (if not all) parameters must have non-empty values to be considered valid, we just return the empty string to signify missing fields. If you need to get the real underlying value, use the inherited "param()" method (which returns undef if the parameter is missing). SEE ALSO
MIME::Field::ParamVal, Mail::Field AUTHOR
Eryq (eryq@zeegee.com), ZeeGee Software Inc (http://www.zeegee.com). David F. Skoll (dfs@roaringpenguin.com) http://www.roaringpenguin.com perl v5.14.2 2012-06-08 MIME::Field::ContType(3pm)
All times are GMT -4. The time now is 09:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy