#!/usr/bin/perl # Demonstration on how to use create complex messages from building # bricks. # # This code can be used and modified without restriction. # Mark Overmeer, <mailbox@overmeer.net>, 16 nov 2001 use warnings; use strict; use lib '..', '.'; use Mail::Box::Manager 2.00; # Not needed for the build method, which is demonstrated here, but # for the structures used to create the demonstration. use Mail::Message::Body; # # Get the command line arguments. # die "Usage: $0 outfile\n" unless @ARGV == 1; my $outfile = shift @ARGV; # # There are many ways you can add data to new messages. Below is # a example which uses files which may not be available on you machine. # Modify the names for your system. # my $anybody = Mail::Message::Body->new(data => <<'A_FEW_LINES'); Just a few lines to show that you can add prepared bodies to the message which is built. A_FEW_LINES my $vcard = Mail::Message::Body->new ( mime_type => 'text/x-vcard', data => <<'SIG'); This is a signature. It has a different type. SIG # # The next part is what I want to demonstrate # my $message = Mail::Message->build ( From => 'me@example.com' , To => 'you@demosite.net' , 'In-Reply-To' => '<iwufd87.sfu76k>' , data => <<'FIRST_PART' This is the first part of the multi-part message which will be created. If only one source of data is specified, a single part message is produced. FIRST_PART , file => '/etc/passwd' , file => '/usr/src/linux/Documentation/logo.gif' , attach => $anybody , attach => $vcard ); # # The message is ready to be printed, transmitted, and/or added to # a folder. # die "Cannot create $outfile: $!\n" unless open OUT, '>', $outfile; $message->print(\*OUT); # $message->send; # $folder->addMessage($message);