---
name: "Sisimai::Mail::Memory"
section: "3pm"
platform: "linux"
package: "libsisimai-perl"
version: "5.3.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Sisimai::Mail::Memory"
---

# Sisimai::Mail::Memory(3pm)

Mailbox reader

## NAME

Sisimai::Mail::Memory - Mailbox reader

## SYNOPSIS

```
    use Sisimai::Mail::Memory;
    my $mailtxt = 'From Mailer-Daemon ...';
    my $mailobj = Sisimai::Mail::Memory->new(\$mailtxt);
    while( my $r = $mailobj->read ) {
        print $r;   # print contents of each mail in the mailbox or Maildir/
    }
```

## DESCRIPTION

`"Sisimai::Mail::Memory"` is a class for reading a mailbox, files in Maildir/ from the value of the specified variable.

## CLASS METHODS

### "new(\\$scalar)"

`new()` method is a constructor of `"Sisimai::Mail::Memory"`

```
    my $mailtxt = 'From Mailer-Daemon ...';
    my $mailobj = Sisimai::Mail::Memory->new(\$mailtxt);
```

## INSTANCE METHODS

### "path()"

`path()` method returns a fixed string `""<MEMORY"`"\>

```
    print $mailbox->path;   # "<MEMORY>"
```

### "size()"

`size()` method returns a memory size of the mailbox

```
    print $mailobj->size;   # 94515
```

### "payload()"

`payload()` method returns an array reference to each email message

```
    print scalar $mailobj->payload->@*; # 17
```

### "offset()"

`offset()` method returns the offset position for seeking `"payload"` list. The value of `"offset"` is an index number which have already read.

```
    print $mailobj->offset;   # 0
```

### "read()"

`read()` method works as an iterator for reading each email in the mailbox.

```
    my $mailtxt = 'From Mailer-Daemon ...';
    my $mailobj = Sisimai::Mail->new(\$mailtxt);
    while( my $r = $mailobj->read ) {
        print $r;   # print each email in the first argument of new().
    }
```

## AUTHOR

azumakuniyuki

## COPYRIGHT

Copyright (C) 2018-2022,2024 azumakuniyuki, All rights reserved.

## LICENSE

This software is distributed under The BSD 2-Clause License.
