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

# Sisimai::RFC2045(3pm)

MIME Utilities

## NAME

Sisimai::RFC2045 - MIME Utilities

## SYNOPSIS

```
    use Sisimai::RFC2045;
    my $e = '=?utf-8?B?55m954yr44Gr44KD44KT44GT?=';
    my $v = Sisimai::RFC2045->is_encoded(\$e);
    print $v;   # 1
    my $x = Sisimai::RFC2045->decodeH([$e]);
    print $x;
```

## DESCRIPTION

`"Sisimai::RFC2045"` is MIME Utilities for Sisimai, is formerly known as `"Sisimai::MIME"`.

## CLASS METHODS

### "is\_encoded(Scalar Reference)"

`is_encoded()` method returns that the argument is a MIME-Encoded string or not.

```
    my $e = '=?utf-8?B?55m954yr44Gr44KD44KT44GT?=';
    my $v = Sisimai::RFC2045->is_encoded(\$e);  # 1
```

### "decodeH(Array-Ref)"

`decodeH()` method is a decoding method for getting the original string from the MIME-Encoded string in the email headers.

```
    my $r = '=?utf-8?B?55m954yr44Gr44KD44KT44GT?=';
    my $v = Sisimai::RFC2045->decodeH([$r]);
```

### "decodeB(\\String)"

`"decodeB"` method is a decoding method for getting the original string from the MIME Base64 encoded string.

```
    my $r = '44Gr44KD44O844KT';
    my $v = Sisimai::RFC2045->decodeB(\$r);
```

### "decodeQ(\\String)"

`"decodeQ"` method is a decoding method for getting the original string from the MIME quoted-printable encoded string.

```
    my $r = '=4e=65=6b=6f';
    my $v = Sisimai::RFC2045->decodeQ(\$r);
```

### "parameter(String, String)"

`parameter()` method returns the value of parameter in `"Content-Type:"` header.

```
    my $r = 'Content-Type: multipart/mixed; boundary=Apple-Mail-1-526612466'; charset=utf8;
    print Sisimai::RFC2045->parameter($r, 'charset');  # utf8
    print Sisimai::RFC2045->parameter($r, 'boundary'); # Apple-Mail-1-526612466
    print Sisimai::RFC2045->parameter($r);             # multipart/mixed
```

### "boundary(String, Integer)"

`boundary()` method returns the boundary string from the value of `"Content-Type:"` header.

```
    my $r = 'Content-Type: multipart/mixed; boundary=Apple-Mail-1-526612466';
    my $v = Sisimai::RFC2045->boundary($r);
    print $v;   # Apple-Mail-1-526612466
    print Sisimai::RFC2045->boundary($r, 0); # --Apple-Mail-1-526612466
    print Sisimai::RFC2045->boundary($r, 1); # --Apple-Mail-1-526612466--
```

### "haircut(\\String, Boolean)"

`haircut()` method remove unused headers from the `"multipart/* "`block.

### "levelout(String, \\String)"

`"levelout"` method breaks the `"multipart/*"` message block into each part and returns an array reference.

### "makeflat(String, \\String)"

`"makeflat"` method makes flat `"multipart/*"` message: This method breaks `"multipart/*"` block into each part, remove parts which are not needed to decode the bounce message such as `"image/*"` MIME type, and decode the encoded text part (`"text/*"`, `"message/*"`) in the body of each part that has `"Content-Transfer-Encoding:"` header and the value of the header is quoted-printabe, base64, or 7bit.

## AUTHOR

azumakuniyuki

## COPYRIGHT

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

## LICENSE

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