zeitform Internet Dienste      

[Inhalt] -> [MIME]

[info]


           

MIME: MIME-Nachrichten verarbeiten (Email)


Email-Header auslesen

Email-Header enthalten Informationen über Absender und Empänger einer Email und verschiedene zusätzliche Informationen für unterschiedliche Zwecke (siehe RFC 2076). Um an diese Informationen zu gelangen, reicht ein schlichter Parser. Die MIME-tools bieten mit den Modulen MIME::Parser, MIME::Body, MIME::Head, MIME::Entity u.a. ebenfalls ein komfortables Interface, um an diese Informationen zu gelangen.

   use MIME::Parser;

   my $message = "...."; # get your email somehow

   my $parser = new MIME::Parser;      # MIME::Parser object
   $parser->output_under("/some/dir"); # where to save the MIME parts

   my $entity = $parser->parse_data($message);       # MIME::Entity object
   # my $entity = $parser->parse(\*STDIN);           # read from STDIN 
   # my $entity = $parser->parse_open("/some/file"); # read from STDIN 

   # get header fields (examples)
   my $from = $entity->head->decode->get("From");
   my $to   = $entity->head->decode->get("To");

Seitenanfang


MIME-Attachments auslesen

Mit den MIME-tools können auch verschachtelte MIME-Nachrichten ausgelesen werden.

   use MIME::Parser;

   split_entity($entity); # $entity is a MIME::Entity object


   ############################################################
   sub split_entity {
   ############################################################
     local $entity = shift;
     my $num_parts = $entity->parts; # how many mime parts?

     if ($num_parts) { # we have a multipart mime message

       foreach (1..$num_parts) {

         split_entity( $entity->parts($_ - 1) ); # recursive call
       }

     } else { # we have a single mime message/part

       if ($entity->effective_type =~ /^text\/plain$/) { # text message

         handle_text($entity->bodyhandle->path, $entity->bodyhandle->as_string);

       } else { # no text message

         handle_other($entity->bodyhandle->path);

       }
     }
   }

Seitenanfang


MIME-Nachrichten verfassen

Mit den MIME-tools lassen sich MIME-Nachrichten generieren.

   use MIME::Parser;
   # use MIME::Entity; # if you don't need the parser

   # generate mail
   my $mail = MIME::Entity->build(
               From           => $from,
               To             => $to,
               Subject        => $subject,
               Encoding       => 'quoted-printable',
               "Content-Type" => 'text/plain; charset="iso-8859-1"', 
               Date           => $today,
               Data           => $mailtext
   );

  # attach files
  foreach (@file_list) {

    $mail->attach(
               Path     => $_, 
               Type     => $content_type, 
               Encoding => "base64"
    );

  }

  # covert to string
  my $mail_as_string = $mail->as_string;

Seitenanfang


Zusammengestellt von Alex Pleiner
© 2001-2003 zeitform Internet Dienste   Bei Problemen wenden Sie sich bitte an den Webmaster
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1.