RE: attachment names

"Simon, Michael S" <[email protected]> Thu, 21 Jul 2005 15:55:43 -0600
Newsgroups gmane.comp.lang.perl.modules.mail-box
Message-ID <[email protected]>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C58E3E.F1DD7882
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I've clearly been working on this too long or I just don't understand
what you are saying to do in these cases.  Here is my complete program.
The sendEmail is the part where I'm having the problems and I've tried
to include as much details as possible of what problems I'm having.

Any suggestions you have would be appreciated.

Again thank you for your help.
________________________
#!/bin/perl.exe
use warnings;
use strict;

use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
use File::Path;
use Mail::Message;
use Mail::Message::Body;
use MIME::Entity;

sub sendEmail;
sub zipAttachment;

my $email =3D \*STDIN;

my $msg =3D Mail::Message->read($email);

my $head =3D $msg->head;
my $body =3D $msg->body;
my @bodyParts;

my @attachments;
my $from=3D'[email protected]';
my $to=3D$head->get("To");
my $cc=3D$head->get("Cc");
my $bcc=3D$head->get("Bcc");
my $subject=3D$head->get("Subject");
my $bodyText =3D "";

my $zipFile;

my $attachmentsDir =3D "/tmp/attachments.$$";
#
# Create Attachments directory if non existent
#
mkpath ($attachmentsDir);
chdir ($attachmentsDir);

my $counter=3D0;
my $iParts=3D0;
  foreach my $part ( $msg->parts )
  {
    if ($part->body->mimeType ne 'text/plain')
    {
      my $attachmentName =3D $part->decoded->dispositionFilename;
      my $attachment =3D File::Spec->catfile( "$attachmentName" );

      unless ( -f $attachment )     #  Write attachment to file
      {
        open( FH, ">$attachment" );
        $part->decoded->print( \*FH );
        close(FH);
      }

      if ($part->body->size > 16384)
      {
        zipAttachment($attachment);
        push(@attachments, "$attachment.zip");
      }
    }
    else
    {
      $bodyText =3D $bodyText . $part->decoded;
      push(@bodyParts,$part->decoded);
    }

  }

sendEmail;
rmtree ($attachmentsDir);

### Start Subroutines

sub sendEmail()
{
 =20
  # I've attempted to start building a multipart email but just can't
seem to do it.
  my $body =3D Mail::Message::Body->new
  ( mime_type         =3D> 'text/html'
  , transfer_encoding =3D> '8bit'
  , data              =3D> $bodyText
  );
  my $body2  =3D Mail::Message::Body::Multipart->new();


 my $multi =3D Mail::Message::Body::Multipart->new();
 my $part  =3D Mail::Message::Part->buildFromBody(@bodyParts, $multi);
=20


  # When I create a message via this way I'm limiting myself as I may
have=20
  # more then one file to attach.  If I understand email well enough I
could=20
  # have multiple text i.e. the body minus the attachments i.e. the
text.
  # Also I won't always have attachments.
=20
  # Issues with the below are that at the bottom of the email I see the
following
  #  -- boundary-1121982005 --
  # this shouldn't show.

  # The "text" coming from the STDIN could be plain or html. =20
  # I need to be able to to keep it in this format.

  my $msg =3D Mail::Message->build
  ( From     =3D> $from
  , To       =3D> $to
  , Cc       =3D> $cc
  , Bcc      =3D> $bcc
  , Subject  =3D> $subject
  , file     =3D> $attachments[0]
  , data     =3D> $bodyText



  # My desire is to see a sample of how I could do the following steps.
  # If they should be done in different order then please explain the
order.
  #=20
  # 1) Create a Message with To, From, cc, bcc, subject
  # 2) Add an array text to the Message
  # 3) Add an array of attachments to the Message
  # 4) Send the email.
 =20
  $msg->send
  ( via        =3D> 'sendmail'
  );

}

#
# sub will create zip and add file to zip
#
sub zipAttachment()
{
  my $attachmentName =3D "@_";
  my $zip =3D Archive::Zip->new();
  $zip->addFile( $attachmentName ) or warn "Can't add file
$attachmentName\n";
  my $status =3D $zip->writeToFileNamed("$attachmentName.zip");
}

________________________

Thanks
______________________________________________________
Michael Simon Actuate Architect
* Work Tel#:  510-272-8010 * Email: [email protected]
______________________________________________________=20


-----Original Message-----
From: Mark Overmeer [mailto:[email protected]]=20
Sent: Wednesday, July 20, 2005 11:42 PM
To: Simon, Michael S
Cc: Mail-Box Mailinglist
Subject: Re: attachment names

* Simon, Michael S ([email protected]) [050721 02:15]:
>   my $message =3D Mail::Message->build
>   ( From     =3D> $from
>   , To       =3D> $to
>   , Cc       =3D> $cc
>   , Bcc      =3D> $bcc
>   , Subject  =3D> $subject
> #, attach   =3D> $bodyParts[0]
> #  , file     =3D> $zipFile
>    );
>=20
> Now how to I append parts to this email message?  I could have
multiple
> attachments and possibly multiple parts as text/html.  For sure I have
> the text of the message.  I may or may not have an attachment(s).
> Any help is appreciated.

You can attach multiple parts like this:

   Mail::Message->build(attach =3D> \@bodyparts);

or

   Mail::Message->build(attach =3D> $parts[0], attach =3D> $parts[1]);

When you specify a file-name, the mime-type and such are automatically
detected (as long as you have the filename-extensions right).

If you want complex things, you need to do it in steps, for instance:
 =20
  my $p1 =3D Mail::Message::Body->new(data =3D> \@lines);
  ...
  my $b  =3D Mail::Message::Body::Multipart->new(parts =3D> [$p1, ...]);

  my $m  =3D Mail::Message->build(attach =3D> $b); # multipart attached =
to
msg
or
  my $m  =3D Mail::Message->buildFromBody($b);   # multipart =3D=3D msg

> I'm looking to do something of the following nature.=20
>   foreach $body (@bodyParts)
>   {
>      $message-attachFile(); or=20
>      $message-attachText();

 my $r =3D $body->attach(file =3D> 'a.pgp');

Called on a multipart body, one part within the multipart will be added
(and
$r =3D=3D $body), otherwise $r will be a multipart.
--=20
    MarkOv

------_=_NextPart_001_01C58E3E.F1DD7882
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7226.0">
<TITLE>RE: attachment names</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">I've clearly been working on this too long or I just =
don't understand what you are saying to do in these =
cases.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us">&nbsp;<FONT COLOR=3D"#800000" FACE=3D"Verdana"> Here is =
my complete program.&nbsp; The sendEmail is the part where I'm having =
the problems and I've tried to include as much details as possible of =
what problems I'm having.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">Any suggestions you have would be =
appreciated.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">Again thank you for your help.</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">________________________</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">#!/bin/perl.exe</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">use warnings;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">use strict;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">use Archive::Zip qw(:ERROR_CODES =
:CONSTANTS);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">use <A =
HREF=3D"File::Path;">File::Path;</A></FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">use Mail::Message;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">use Mail::Message::Body;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">use MIME::Entity;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">sub sendEmail;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">sub zipAttachment;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $email =3D \*STDIN;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $msg =3D =
Mail::Message-&gt;read($email);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $head =3D $msg-&gt;head;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $body =3D $msg-&gt;body;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my @bodyParts;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my @attachments;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $from=3D'[email protected]';</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my =
$to=3D$head-&gt;get(&quot;To&quot;);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my =
$cc=3D$head-&gt;get(&quot;Cc&quot;);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my =
$bcc=3D$head-&gt;get(&quot;Bcc&quot;);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my =
$subject=3D$head-&gt;get(&quot;Subject&quot;);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $bodyText =3D &quot;&quot;;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $zipFile;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $attachmentsDir =3D =
&quot;/tmp/attachments.$$&quot;;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">#</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana"># Create Attachments directory if non =
existent</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">#</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">mkpath ($attachmentsDir);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">chdir ($attachmentsDir);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $counter=3D0;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">my $iParts=3D0;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; foreach my $part ( $msg-&gt;parts =
)</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; {</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp; if ($part-&gt;body-&gt;mimeType ne =
'text/plain')</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp; {</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $attachmentName =3D =
$part-&gt;decoded-&gt;dispositionFilename;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $attachment =3D <A =
HREF=3D"File::Spec-">File::Spec-</A>&gt;catfile( =
&quot;$attachmentName&quot; );</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless ( -f $attachment =
)&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp; Write attachment to =
file</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open( FH, =
&quot;&gt;$attachment&quot; );</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
$part-&gt;decoded-&gt;print( \*FH );</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
close(FH);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if =
($part-&gt;body-&gt;size &gt; 16384)</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
zipAttachment($attachment);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
push(@attachments, &quot;$attachment.zip&quot;);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp; }</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp; else</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp; {</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $bodyText =3D $bodyText =
. $part-&gt;decoded;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
push(@bodyParts,$part-&gt;decoded);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp; }</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; }</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">sendEmail;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">rmtree ($attachmentsDir);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">### Start Subroutines</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">sub sendEmail()</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">{</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> </SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # I've attempted to start building a multipart =
email but just can't seem to do it.</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $body =3D =
Mail::Message::Body-&gt;new</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; ( =
mime_type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
'text/html'</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , transfer_encoding =3D&gt; =
'8bit'</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , =
data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp; =3D&gt; $bodyText</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; );</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $body2&nbsp; =3D =
Mail::Message::Body::Multipart-&gt;new();</FONT></SPAN></P>
<BR>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;my $multi =3D =
Mail::Message::Body::Multipart-&gt;new();</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;my $part&nbsp; =3D =
Mail::Message::Part-&gt;buildFromBody(@bodyParts, =
$multi);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana"></FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us">&nbsp;</SPAN></P>
<BR>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # When I create a message via this way I'm =
limiting myself as I may have </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # more then one file to attach.&nbsp; If I =
understand email well enough I could</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> </SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; #</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> <FONT COLOR=3D"#800000" FACE=3D"Verdana">have =
multiple</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> =
<FONT COLOR=3D"#800000" FACE=3D"Verdana">text i.e. the body minus the =
attachments i.e. the text</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # Also I won't always have =
attachments.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana"></FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us">&nbsp;</SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # Issues with the below are that at the bottom =
of the email I see</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> <FONT COLOR=3D"#800000" FACE=3D"Verdana">the =
following</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; #&nbsp;</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT COLOR=3D"#800000" =
FACE=3D"Verdana">-- boundary-1121982005 --</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # this shouldn't show.</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # The &quot;text&quot;</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT COLOR=3D"#800000" =
FACE=3D"Verdana">coming from</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT COLOR=3D"#800000" =
FACE=3D"Verdana">the</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#800000" FACE=3D"Verdana"> =
STDIN</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> =
<FONT COLOR=3D"#800000" FACE=3D"Verdana">could be plain or =
html</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FONT =
COLOR=3D"#800000" FACE=3D"Verdana">.&nbsp; </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # I need to be able to to keep it in this =
format.</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $msg =3D =
Mail::Message-&gt;build</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; ( From&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$from</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , To&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$to</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , Cc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$cc</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , Bcc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$bcc</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , Subject&nbsp; =3D&gt; =
$subject</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , file&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$attachments[0]</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; , data&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$bodyText</FONT></SPAN></P>
<BR>
<BR>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # My desire is to see a sample of how I could do =
the following steps.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # If they should be done in different order then =
please explain the order.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # 1) Create a Message with To, From, cc, bcc, =
subject</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # 2) Add</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT COLOR=3D"#800000" =
FACE=3D"Verdana">an array</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"> <FONT COLOR=3D"#800000" FACE=3D"Verdana">text to =
the</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"> <FONT =
COLOR=3D"#800000" FACE=3D"Verdana">Message</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # 3) Add an array of attachments to the =
Message</FONT></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; # 4) Send the email.</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; $msg-&gt;send</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; ( via&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
=3D&gt; 'sendmail'</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; );</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">}</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">#</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana"># sub will create zip and add file to =
zip</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">#</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">sub zipAttachment()</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">{</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $attachmentName =3D =
&quot;@_&quot;;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $zip =3D =
Archive::Zip-&gt;new();</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; $zip-&gt;addFile( $attachmentName ) or warn =
&quot;Can't add file $attachmentName\n&quot;;</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $status =3D =
$zip-&gt;writeToFileNamed(&quot;$attachmentName.zip&quot;);</FONT></SPAN>=
</P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">}</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">________________________</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"></SPAN><A NAME=3D""><SPAN =
LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">Thanks</FONT></SPAN></A></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">______________________________________________________</=
FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">Michael Simon Actuate Architect</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">* Work Tel#:&nbsp; 510-272-8010 * Email: =
[email protected]</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">______________________________________________________ =
</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">-----Original Message-----<BR>
From: Mark Overmeer [<A =
HREF=3D"mailto:[email protected]">mailto:[email protected]</A>]<BR>
Sent: Wednesday, July 20, 2005 11:42 PM<BR>
To: Simon, Michael S<BR>
Cc: Mail-Box Mailinglist<BR>
Subject: Re: attachment names</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">* Simon, Michael S ([email protected]) [050721 =
02:15]:</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; my $message =3D =
Mail::Message-&gt;build</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; ( From&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$from</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; , =
To&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; $to</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; , =
Cc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; $cc</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; , Bcc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
=3D&gt; $bcc</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; , Subject&nbsp; =3D&gt; =
$subject</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; #, attach&nbsp;&nbsp; =3D&gt; =
$bodyParts[0]</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; #&nbsp; , file&nbsp;&nbsp;&nbsp;&nbsp; =3D&gt; =
$zipFile</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp;&nbsp; );</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; Now how to I append parts to this email =
message?&nbsp; I could have multiple</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; attachments and possibly multiple parts as =
text/html.&nbsp; For sure I have</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; the text of the message.&nbsp; I may or may not =
have an attachment(s).</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; Any help is appreciated.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">You can attach multiple parts like =
this:</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp; Mail::Message-&gt;build(attach =3D&gt; =
\@bodyparts);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">or</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp; Mail::Message-&gt;build(attach =3D&gt; =
$parts[0], attach =3D&gt; $parts[1]);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">When you specify a file-name, the mime-type and such =
are automatically</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">detected (as long as you have the filename-extensions =
right).</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">If you want complex things, you need to do it in steps, =
for instance:</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $p1 =3D Mail::Message::Body-&gt;new(data =
=3D&gt; \@lines);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; ...</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $b&nbsp; =3D =
Mail::Message::Body::Multipart-&gt;new(parts =3D&gt; [$p1, =
...]);</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $m&nbsp; =3D Mail::Message-&gt;build(attach =
=3D&gt; $b); # multipart attached to msg</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">or</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp; my $m&nbsp; =3D =
Mail::Message-&gt;buildFromBody($b);&nbsp;&nbsp; # multipart =3D=3D =
msg</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt; I'm looking to do something of the following =
nature. </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; foreach $body =
(@bodyParts)</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp; {</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
$message-attachFile(); or </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
$message-attachText();</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;my $r =3D $body-&gt;attach(file =3D&gt; =
'a.pgp');</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">Called on a multipart body, one part within the =
multipart will be added (and</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">$r =3D=3D $body), otherwise $r will be a =
multipart.</FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">-- </FONT></SPAN></P>

<P ALIGN=3DLEFT><SPAN LANG=3D"en-us"><FONT COLOR=3D"#800000" =
FACE=3D"Verdana">&nbsp;&nbsp;&nbsp; MarkOv</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN></P>

</BODY>
</HTML>
------_=_NextPart_001_01C58E3E.F1DD7882--