GT::Mail::Message - Encapsolates an email message.
use GT::Mail::Message; # Get a GT::Mail::Message object from the parser use GT::Mail::Parse;
my $parser = new GT::Mail::Parse( in_file => "myemail.eml" ); my $message = $parser->parse;
# Get the top level part my $root_part = $message->root_part;
# Replace the first part with a new part $message->replace_part( $root_part, $message->new_part( to => 'scott@gossamer-threads.com', from => 'alex@gossamer-threads.com', 'content-type' => 'text/plain', body_data => 'Hi Scott, how are you?!' );
# Add a part at the end my $end_part = $message->new_part( 'content-type' => 'image/gif', body_path => 'myimage.jpg' ); $message->add_part_end( $root_part, $end_part );
# Move the first part in the top part to after the end part $message->move_part_after( $root_part->parts->[0], $end_part );
# Print the mime message print $message->to_string;
GT::Mail::Message encapsolates a mime message which consists of the GT::Mail::Parts manpage object. This module provides methods to change, move, remove, and access these parts.
Usually you will get a GT::Mail::Message object by call the parse method in the GT::Mail::Parse manpage.
my $message = $parser->parse;
You may also call new on this class specifying the top level part and or a debug level.
my $message = new GT::Mail::Message( root_part => $part, debug => 1 );
You can create a part by calling new on the GT::Mail::Parts manpage directly
my $part = new GT::Mail::Parts; $part->set( 'content-type' => 'image/gif' ); $part->body_path( 'myimage.gif' );
or you can call a method in this module to get a new part
my $part = $message->new_part( 'content-type' => 'image/gif', body_path => 'myimage.gif' );
This method is a wraper on a combination of new()
and some other
supporting methods in the GT::Mail::Parts manpage such as body_path(). Anything
that is not body_path, body_data, or body_handle is treated
as header values.
A MIME message is just a format for storing a tree structure. We provide
tree-like methods to manipulate parts. All the method for manipulating
parts take the part object(s)
as arguments. We do this so you do not need
to know how the tree is tracked internally.
More to come!
Copyright (c) 2004 Gossamer Threads Inc. All Rights Reserved. http://www.gossamer-threads.com/
Revision: $Id: Message.pm,v 1.14 2004/01/13 01:35:17 jagerman Exp $