---
name: "Mail::Server::IMAP4::Fetch"
section: "3pm"
platform: "linux"
package: "libmail-box-imap4-perl"
version: "3.009-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mail::Server::IMAP4::Fetch"
---

# Mail::Server::IMAP4::Fetch(3pm)

message info for IMAP protocol speed-up

## NAME

Mail::Server::IMAP4::Fetch - message info for IMAP protocol speed-up

## SYNOPSIS

```
 my $imap = Mail::Server::IMAP4::Fetch->new($msg);
 print $imap->fetchBody(1);   # for FETCH BODYSTRUCTURE
 print $imap->fetchBody;      # for FETCH BODY
 print $imap->fetchEnvelope;  # for FETCH ENVELOPE
 print $imap->fetchSize;
```

## DESCRIPTION

Create a new object hierarchy, which contains information to capture the most important details about the message.  The object can be used to speed-up IMAP-server implementations, as Mail::Box::Netzwert.

The object used here is a simplified representation of a Mail::Box::Message object.  It does not maintain headers and does not refer to the folder.  It only works with messages stored in a file. Therefore, this object can be frozen by Storable if you want to.

## METHODS

### Constructors

- Mail::Server::IMAP4::Fetch-\>**new**( \<$message\|$part\>, %options )

  ```
   -Option      --Default
    md5checksums  0
  ```

  - md5checksums =\> BOOLEAN

    ### Attributes

- $obj-\>**bodyLocation**()

  - $obj-\>**headLocation**()

  - $obj-\>**partLocation**()

  ### IMAP Commands

- $obj-\>**fetchBody**($extended)

  Returns one string, representing the message's structure as defined by the IMAP protocol.  The boolean argument indicates whether you like to have the `$extended` information, as the imap command 'FETCH BODYSTRUCTURE' defines or the limited information of 'FETCH BODY'.

- $obj-\>**fetchEnvelope**()

  Returns a string representation of some header information.

- $obj-\>**fetchSize**()

  Returns the size of the message body.

- $obj-\>**part**( \[$partnr\] )

  The partnummer is a list of dot-separated positive integers, numbering (nested) parts in multi-part message bodies.  By default, the info of the main message is returned.

  example:

  ```
   my $partinfo = $msg->info->part('1.2.1');
   print $msg->info->part('3.3')->fetchBody;
  ```

- $obj-\>**printStructure**( \[\<$fh\|undef\>, \[$number\]\] )

  Print the structure of the fetch data to the specified `$fh` or the selected filehandle.  When explicitly `"undef"` is specified as handle, then the output will be returned as string.   Only a limited set of the information is displayed.

  example:

  ```
   my $imap = ...;
   $imap->printStructure(\*OUTPUT);
   $imap->printStructure;
   my $struct = $imap->printStructure(undef);
  ```

### Internals

## DETAILS

See

- RFC2060: "Internet Message Access Protocol IMAP4v1" section 7.4.2

  - RFC2045: "MIME Part One: Format of Internet Message Bodies".

  ## SEE ALSO

This module is part of Mail-Box-IMAP4 distribution version 3.009, built on April 18, 2025. Website: *http://perl.overmeer.net/CPAN/*

## LICENSE

Copyrights 2001-2025 by \[Mark Overmeer\]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See *http://dev.perl.org/licenses/*
