MIME::F...ContType(3)
β¨ NAME β¨
MIME::Field::ContType β it's literally a "Content-type" field, bestie π
π DESCRIPTION π
Okay so first thing: this is a subclass of Mail::Field. A whole subclass, main character energy, no cap π«Ά
But listen β do not use this class directly... its name may change in the future! Not me warning you ahead of time π Instead, ask Mail::Field for new instances based on the field name. Let the parent class handle it, it's giving delegation slay β¨
πΈ SYNOPSIS πΈ
use Mail::Field;
use MIME::Head;
# Create an instance from some text:
$field = Mail::Field->new('Content-type',
'text/HTML; charset="US-ASCII"');
# Get the MIME type, like 'text/plain' or 'x-foobar'.
# Returns 'text/plain' as default, as per RFC 2045:
my ($type, $subtype) = split('/', $field->type);
# Get generic information:
print $field->name;
# Get information related to "message" type:
if ($type eq 'message') {
print $field->id;
print $field->number;
print $field->total;
}
# Get information related to "multipart" type:
if ($type eq 'multipart') {
print $field->boundary; # the basic value, fixed up
print $field->multipart_boundary; # empty if not a multipart message!
}
# Get information related to "text" type:
if ($type eq 'text') {
print $field->charset; # returns 'us-ascii' as default
}
Like, look at all those methods just waiting for you π₯° iconic behavior fr fr
π PUBLIC INTERFACE π
π boundary
Returns the boundary field, bestie. And the boundary is returned exactly as given in the Content-type: field β that means the leading double-hyphen (--) is not prepended. Nope. Not happening. π
ββοΈ
(Well... almost exactly. From RFC 2046, and I'm quoting here:
(If a boundary appears to end with white space, the white space must be presumed to have been added by a gateway, and must be deleted.)
so we oblige and remove any trailing spaces. We're nothing if not accommodating π )
Returns the empty string if there's no boundary, or if the boundary is illegal β like, if it's empty after all that trailing whitespace got removed. Nothing left = nothing returned. Periodt. β¨
π¦ multipart_boundary
Like boundary(), except this one will also hand you back the empty string if the message is not a multipart message. In other words: automatic sanity check, built right in. We love a method that checks itself π«Ά
π type
Try real hard to determine the content type, okay? Like "text/plain", "image/gif", "x-weird-type" β and it comes back all-lowercase, always.
A happy thing π₯³: the following code will work just as you would want, even if there's no subtype (as in "x-weird-type")... in such a case, the $subtype would simply be the empty string:
($type, $subtype) = split('/', $head->mime_type);
If the content-type information is missing, it defaults to "text/plain", as per RFC 2045. Quote time, bestie:
Default RFC 2822 messages are typed by this protocol as plain text in the US-ASCII character set, which can be explicitly specified as "Content-type: text/plain; charset=us-ascii". If no Content-Type is specified, this default is assumed.
Note: under the "be liberal in what we accept" principle π, this routine no longer syntax-checks the content type. If it ain't empty, just downcase and return it. That's it. That's the whole vibe check. β
π NOTES π
Since nearly all (if not all) parameters must have non-empty values to be considered valid, we just return the empty string to signify missing fields. Simple as that π
If you need to get the real underlying value, use the inherited param() method instead (which returns undef if the parameter is missing). Different method, different rules, iykyk β¨
π SEE ALSO π
MIME::Field::ParamValMail::Field
Go read those too, they're the supporting cast and they ate π₯
π AUTHOR π
- Eryq (
eryq@zeegee.com), ZeeGee Software Inc (http://www.zeegee.com). - Dianne Skoll (
dianne@skoll.ca)
and that's the whole page, bestie π this was perl v5.42.0, dated 2026-02-11, and it lives in the MIME::F...ContType(3) manual. go forth and parse those content types, you absolute icon π
β¨
π¦ where this page comes from
- fedora 44: perl-MIME-tools 5.517-1.fc44 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms