MailMimeParser 2.4

MimePart extends MultiPart
in package
implements IMimePart

A mime email message part.

A MIME part may contain any combination of headers, content and children.

Tags
author

Zaahid Bateson

Interfaces, Classes, Traits and Enums

IMimePart
An interface representation of any MIME email part.

Table of Contents

$charsetOverride  : string|null
$headerContainer  : PartHeaderContainer
$ignoreTransferEncoding  : bool
$observers  : SplObjectStorage
$parent  : IMimePart|null
$partChildrenContainer  : PartChildrenContainer
$partStreamContainer  : PartStreamContainer
__construct()  : mixed
__toString()  : string
Returns the message/part as a string, containing its headers, content and children.
addChild()  : mixed
Registers the passed part as a child of the current part.
addRawHeader()  : static
Adds a header with the given $name and $value.
attach()  : void
attachContentStream()  : static
Attaches the stream or resource handle for the part's content. The stream is closed when another stream is attached, or the MimePart is destroyed.
detach()  : void
detachContentStream()  : static
Detaches the content stream.
getAllHeaders()  : array<string|int, IHeader>
Returns an array of all headers in this part.
getAllHeadersByName()  : array<string|int, IHeader>
Returns an array of headers that match the passed name.
getAllParts()  : array<string|int, IMessagePart>
Returns the current part, all child parts, and child parts of all children optionally filtering them with the provided PartFilter.
getAllPartsByMimeType()  : array<string|int, IMessagePart>
Returns an array of all parts that have a content type matching the passed mime type.
getBinaryContentResourceHandle()  : resource|null
Returns a resource handle for the content's raw data stream, or null if the part doesn't have a content stream.
getBinaryContentStream()  : StreamInterface|null
Returns the raw data stream for the current part, if it exists, or null if there's no content associated with the stream.
getCharset()  : string|null
Returns the charset of the content, or null if not applicable/defined.
getChild()  : IMessagePart|null
Returns the direct child at the given 0-based index and optional filter, or null if none exist or do not match.
getChildCount()  : int
Returns the number of direct children under this part (optionally counting only filtered items if a callable filter is passed).
getChildIterator()  : RecursiveIterator
Returns a \RecursiveIterator of child parts.
getChildParts()  : array<string|int, IMessagePart>
Returns an array of all direct child parts, optionally filtering them with a passed callable.
getContent()  : string|null
Shortcut to reading stream content and assigning it to a string. Returns null if the part doesn't have a content stream.
getContentDisposition()  : string
Returns the content's disposition, or returns the value of $default if not defined.
getContentId()  : string|null
Returns the Content ID of the part, or null if not defined.
getContentStream()  : StreamInterface|null
Returns the StreamInterface for the part's content or null if the part doesn't have a content section.
getContentTransferEncoding()  : string
Returns the content transfer encoding used to encode the content on this part, or the value of $default if not defined.
getContentType()  : string
Returns the mime type of the content, or $default if one is not set.
getCountOfPartsByMimeType()  : int
Returns the number of parts that have content types matching the passed mime type.
getFilename()  : string|null
Returns a filename for the part if one is defined, or null otherwise.
getHeader()  : IHeader|null
Returns the IHeader object for the header with the given $name.
getHeaderAs()  : IHeader|null
Returns the IHeader object for the header with the given $name, using the passed $iHeaderClass to construct it.
getHeaderParameter()  : string|null
Returns the value of the parameter named $param on a header with the passed $header name, or null if the parameter doesn't exist and a $defaultValue isn't passed.
getHeaderValue()  : string|null
Returns the string value for the header with the given $name, or null if the header doesn't exist and no alternative $defaultValue is passed.
getParent()  : IMimePart
Returns this part's parent.
getPart()  : IMessagePart|null
Returns the part at the given 0-based index for this part (part 0) and all parts under it, or null if not found with the passed filter function.
getPartByContentId()  : IMessagePart|null
Returns a part that has the given Content ID, or null if not found.
getPartByMimeType()  : IMessagePart|null
Returns the part that has a content type matching the passed mime type at the given index, or null if there are no matching parts.
getPartCount()  : int
Returns the total number of parts in this and all children.
getRawHeaderIterator()  : Iterator
Returns an iterator to all headers in this part. Each returned element is an array with its first element set to the header's name, and the second to its raw value:
getRawHeaders()  : array<string|int, array<string|int, string>>
Returns a two dimensional string array of all headers for the mime part with the first element holding the name, and the second its raw string value:
getResourceHandle()  : resource
Returns a resource handle for the string representation of this part, containing its headers, content and children. For an IMessage, this would be the entire RFC822 (or greater) email.
getStream()  : StreamInterface
Returns a Psr7 StreamInterface for the string representation of this part, containing its headers, content and children.
hasContent()  : bool
Returns true if the part contains a 'body' (content).
isMime()  : bool
Returns true.
isMultiPart()  : bool
Returns true if this part's content type matches multipart/*
isSignaturePart()  : bool
Returns true if this part's parent is an IMessage, and is the same part returned by {@see IMessage::getSignaturePart()}.
isTextPart()  : bool
Returns true if this part has a defined 'charset' on its Content-Type header.
notify()  : void
removeAllParts()  : int
Removes all parts below the current part. If a callable filter is passed, removes only those matching the passed filter. The number of removed parts is returned.
removeHeader()  : static
Removes all headers from this part with the passed name.
removePart()  : int|null
Removes the child part from this part and returns its previous position or null if it wasn't found.
removeSingleHeader()  : static
Removes a single header with the passed name (in cases where more than one may exist, and others should be preserved).
save()  : static
Writes a string representation of this part, including its headers, content and children to the passed file, resource, or stream.
saveContent()  : self
Saves the binary content of the stream to the passed file, resource or stream.
setCharsetOverride()  : static
Overrides the default character set used for reading content from content streams in cases where a user knows the source charset is not what is specified.
setContent()  : static
Sets the content of the part to the passed string, resource, or stream.
setRawHeader()  : static
Adds a header with the given $name and $value. An optional $offset may be passed, which will overwrite a header if one exists with the given name and offset only. Otherwise a new header is added. The passed $offset may be ignored in that case if it doesn't represent the next insert position for the header with the passed name... instead it would be 'pushed' on at the next position.
getAllPartsIterator()  : AppendIterator
iteratorFindAt()  : mixed

Properties

$charsetOverride

protected string|null $charsetOverride

can be used to set an override for content's charset in cases where a user knows the charset on the content is not what it claims to be.

$ignoreTransferEncoding

protected bool $ignoreTransferEncoding

set to true when a user attaches a stream manually, it's assumed to already be decoded or to have relevant transfer encoding decorators attached already.

$observers

protected SplObjectStorage $observers

attached observers that need to be notified of modifications to this part.

Methods

__toString()

Returns the message/part as a string, containing its headers, content and children.

public __toString() : string

Convenience method for calling getContents() on IMessagePart::getStream().

Return values
string

addChild()

Registers the passed part as a child of the current part.

public addChild(IMessagePart $part[, int|null $position = null ]) : mixed

If the $position parameter is non-null, adds the part at the passed position index, otherwise adds it as the last child.

Parameters
$part : IMessagePart

The part to add.

$position : int|null = null

Optional insertion position 0-based index.

Return values
mixed

addRawHeader()

Adds a header with the given $name and $value.

public addRawHeader(string $name, string $value) : static
Parameters
$name : string

The name of the header

$value : string

The raw value of the header.

Return values
static

attach()

public attach(SplObserver $observer) : void
Parameters
$observer : SplObserver
Return values
void

attachContentStream()

Attaches the stream or resource handle for the part's content. The stream is closed when another stream is attached, or the MimePart is destroyed.

public attachContentStream(StreamInterface $stream[, string $streamCharset = MailMimeParser::DEFAULT_CHARSET ]) : static
Parameters
$stream : StreamInterface

the content

$streamCharset : string = MailMimeParser::DEFAULT_CHARSET

the charset of $stream

Return values
static

detach()

public detach(SplObserver $observer) : void
Parameters
$observer : SplObserver
Return values
void

detachContentStream()

Detaches the content stream.

public detachContentStream() : static
Return values
static

getAllHeaders()

Returns an array of all headers in this part.

public getAllHeaders() : array<string|int, IHeader>
Return values
array<string|int, IHeader>

an array of header objects

getAllHeadersByName()

Returns an array of headers that match the passed name.

public getAllHeadersByName(mixed $name) : array<string|int, IHeader>
Parameters
$name : mixed
Return values
array<string|int, IHeader>

an array of header objects

getAllParts()

Returns the current part, all child parts, and child parts of all children optionally filtering them with the provided PartFilter.

public getAllParts([mixed $fnFilter = null ]) : array<string|int, IMessagePart>

Note that the first part returned is the current part itself. This is often desirable for queries with a passed filter, e.g. looking for an IMessagePart with a specific Content-Type that may be satisfied by the current part.

The passed callable must accept an IMessagePart as an argument, and return true if it should be accepted, or false to filter the part out. Some default filters are provided by static functions returning callables in PartFilter.

Parameters
$fnFilter : mixed = null

Optional function accepting an IMessagePart and returning true if the part should be included.

Return values
array<string|int, IMessagePart>

An array of matching parts.

getAllPartsByMimeType()

Returns an array of all parts that have a content type matching the passed mime type.

public getAllPartsByMimeType(mixed $mimeType) : array<string|int, IMessagePart>

Creates a filter that looks at the return value of IMessagePart::getContentType() for all parts (including the current part), returning an array of matching parts.

Parameters
$mimeType : mixed

The mime type to find.

Return values
array<string|int, IMessagePart>

An array of matching parts.

getBinaryContentResourceHandle()

Returns a resource handle for the content's raw data stream, or null if the part doesn't have a content stream.

public getBinaryContentResourceHandle() : resource|null

The method wraps a call to IMessagePart::getBinaryContentStream() and returns a resource handle for the returned Stream.

Return values
resource|null

the resource

getBinaryContentStream()

Returns the raw data stream for the current part, if it exists, or null if there's no content associated with the stream.

public getBinaryContentStream() : StreamInterface|null

This is basically the same as calling IMessagePart::getContentStream(), except no automatic charset conversion is done. Note that for non-text streams, this doesn't have an effect, as charset conversion is not performed in that case, and is useful only when:

  • The charset defined is not correct, and the conversion produces errors; or
  • You'd like to read the raw contents without conversion, for instance to save it to file or allow a user to download it as-is (in a download link for example).
Return values
StreamInterface|null

the stream

getCharset()

Returns the charset of the content, or null if not applicable/defined.

public getCharset() : string|null

Looks for a 'charset' parameter under the 'Content-Type' header of this part and returns it if set, defaulting to 'ISO-8859-1' if the Content-Type header exists and is of type text/plain or text/html.

Note that the returned value is also converted to upper case.

Return values
string|null

the charset

getChild()

Returns the direct child at the given 0-based index and optional filter, or null if none exist or do not match.

public getChild(mixed $index[, mixed $fnFilter = null ]) : IMessagePart|null

The passed callable must accept an IMessagePart as an argument, and return true if it should be accepted, or false to filter the part out. Some default filters are provided by static functions returning callables in PartFilter.

Parameters
$index : mixed

0-based index

$fnFilter : mixed = null

Optional function accepting an IMessagePart and returning true if the part should be included.

Return values
IMessagePart|null

The matching direct child part or null if not found.

getChildCount()

Returns the number of direct children under this part (optionally counting only filtered items if a callable filter is passed).

public getChildCount([mixed $fnFilter = null ]) : int

The passed callable must accept an IMessagePart as an argument, and return true if it should be accepted, or false to filter the part out. Some default filters are provided by static functions returning callables in PartFilter.

Parameters
$fnFilter : mixed = null

Optional function accepting an IMessagePart and returning true if the part should be included.

Return values
int

The number of children, or number of children matching the the passed filtering callable.

getChildParts()

Returns an array of all direct child parts, optionally filtering them with a passed callable.

public getChildParts([mixed $fnFilter = null ]) : array<string|int, IMessagePart>

The passed callable must accept an IMessagePart as an argument, and return true if it should be accepted, or false to filter the part out. Some default filters are provided by static functions returning callables in PartFilter.

Parameters
$fnFilter : mixed = null

Optional function accepting an IMessagePart and returning true if the part should be included.

Return values
array<string|int, IMessagePart>

An array of matching child parts.

getContent()

Shortcut to reading stream content and assigning it to a string. Returns null if the part doesn't have a content stream.

public getContent([string $charset = MailMimeParser::DEFAULT_CHARSET ]) : string|null

The returned string is encoded to the passed $charset character encoding.

Parameters
$charset : string = MailMimeParser::DEFAULT_CHARSET

the target charset for the returned string

Return values
string|null

the content

getContentDisposition()

Returns the content's disposition, or returns the value of $default if not defined.

public getContentDisposition([string $default = 'inline' ]) : string

Looks at the 'Content-Disposition' header, which should only contain either 'inline' or 'attachment'. If the header is not one of those values, $default is returned, which defaults to 'inline' unless passed something else.

Parameters
$default : string = 'inline'

Optional default value if not set or does not match 'inline' or 'attachment'.

Return values
string

the content disposition

getContentId()

Returns the Content ID of the part, or null if not defined.

public getContentId() : string|null

Looks up and returns the value of the 'Content-ID' header.

Return values
string|null

the content ID or null if not defined.

getContentStream()

Returns the StreamInterface for the part's content or null if the part doesn't have a content section.

public getContentStream([string $charset = MailMimeParser::DEFAULT_CHARSET ]) : StreamInterface|null

To get a stream without charset conversion if you know the part's content contains a binary stream, call self::getBinaryContentStream() instead.

The library automatically handles decoding and charset conversion (to the target passed $charset) based on the part's transfer encoding as returned by IMessagePart::getContentTransferEncoding() and the part's charset as returned by IMessagePart::getCharset(). The returned stream is ready to be read from directly.

Note that the returned Stream is a shared object. If called multiple times with the same $charset, and the value of the part's Content-Transfer-Encoding header has not changed, the stream will be rewound. This would affect other existing variables referencing the stream, for example:

// assuming $part is a part containing the following
// string for its content: '12345678'
$stream = $part->getContentStream();
$someChars = $part->read(4);

$stream2 = $part->getContentStream();
$moreChars = $part->read(4);
echo ($someChars === $moreChars);    //1

In this case the Stream was rewound, and $stream's second call to read 4 bytes reads the same first 4.

Parameters
$charset : string = MailMimeParser::DEFAULT_CHARSET

Optional charset for the returned stream.

Return values
StreamInterface|null

the stream

getContentTransferEncoding()

Returns the content transfer encoding used to encode the content on this part, or the value of $default if not defined.

public getContentTransferEncoding([string $default = '7bit' ]) : string

Looks up and returns the value of the 'Content-Transfer-Encoding' header if set, defaulting to '7bit' if an alternate $default param is not passed.

The returned value is always lowercase, and header values of 'x-uue', 'uue' and 'uuencode' will return 'x-uuencode' instead.

Parameters
$default : string = '7bit'

Optional default value to return if the header isn't set.

Return values
string

the content transfer encoding.

getContentType()

Returns the mime type of the content, or $default if one is not set.

public getContentType([string $default = 'text/plain' ]) : string

Looks at the part's Content-Type header and returns its value if set, or defaults to 'text/plain'.

Note that the returned value is converted to lower case, and may not be identical to calling MimePart::getHeaderValue('Content-Type') in some cases.

Parameters
$default : string = 'text/plain'

Optional default value to specify a default other than text/plain if needed.

Return values
string

the mime type

getCountOfPartsByMimeType()

Returns the number of parts that have content types matching the passed mime type.

public getCountOfPartsByMimeType(mixed $mimeType) : int
Parameters
$mimeType : mixed

The mime type to find.

Return values
int

The number of matching parts.

getFilename()

Returns a filename for the part if one is defined, or null otherwise.

public getFilename() : string|null

Uses the 'filename' parameter of the Content-Disposition header if it exists, or the 'name' parameter of the 'Content-Type' header if it doesn't.

Return values
string|null

the file name of the part or null.

getHeader()

Returns the IHeader object for the header with the given $name.

public getHeader(mixed $name, mixed $offset) : IHeader|null

If the optional $offset is passed, and multiple headers exist with the same name, the one at the passed offset is returned.

Note that mime header names aren't case sensitive, and the '-' character is ignored, so ret

If a header with the given $name and $offset doesn't exist, null is returned.

Parameters
$name : mixed

The name of the header to retrieve.

$offset : mixed

Optional offset if there are multiple headers with the given name.

Return values
IHeader|null

the header object

getHeaderAs()

Returns the IHeader object for the header with the given $name, using the passed $iHeaderClass to construct it.

public getHeaderAs(string $name, string $iHeaderClass, int $offset) : IHeader|null

If the optional $offset is passed, and multiple headers exist with the same name, the one at the passed offset is returned.

Note that mime headers aren't case sensitive, and the '-' character is

If a header with the given $name and $offset doesn't exist, null is returned.

Parameters
$name : string

The name of the header to retrieve.

$iHeaderClass : string
$offset : int

Optional offset if there are multiple headers with the given name.

Return values
IHeader|null

the header object

getHeaderParameter()

Returns the value of the parameter named $param on a header with the passed $header name, or null if the parameter doesn't exist and a $defaultValue isn't passed.

public getHeaderParameter(mixed $header, mixed $param[, mixed $defaultValue = null ]) : string|null

Only headers of type ParameterHeader have parameters. Content-Type and Content-Disposition are examples of headers with parameters. "Charset" is a common parameter of Content-Type.

Parameters
$header : mixed

The name of the header.

$param : mixed

The name of the parameter.

$defaultValue : mixed = null

Optional default value to return if the parameter doesn't exist.

Return values
string|null

The value of the parameter.

getHeaderValue()

Returns the string value for the header with the given $name, or null if the header doesn't exist and no alternative $defaultValue is passed.

public getHeaderValue(mixed $name[, mixed $defaultValue = null ]) : string|null

Note that mime headers aren't case sensitive.

Parameters
$name : mixed

The name of the header

$defaultValue : mixed = null

Optional default value to return if the header doesn't exist on this part.

Return values
string|null

the value of the header

getPart()

Returns the part at the given 0-based index for this part (part 0) and all parts under it, or null if not found with the passed filter function.

public getPart(mixed $index[, mixed $fnFilter = null ]) : IMessagePart|null

Note that the first part returned is the current part itself. This is usually desirable for queries with a passed filter, e.g. looking for an part with a specific Content-Type that may be satisfied by the current part.

The passed callable must accept an IMessagePart as an argument, and return true if it should be accepted, or false to filter the part out. Some default filters are provided by static functions returning callables in PartFilter.

Parameters
$index : mixed

The 0-based index (0 being this part if $fnFilter is null or this part is satisfied by the filter).

$fnFilter : mixed = null

Optional function accepting an IMessagePart and returning true if the part should be included.

Return values
IMessagePart|null

A matching part, or null if not found.

getPartByContentId()

Returns a part that has the given Content ID, or null if not found.

public getPartByContentId(mixed $contentId) : IMessagePart|null

Calls IMessagePart::getContentId() to find a matching part.

Parameters
$contentId : mixed

The content ID to find a part for.

Return values
IMessagePart|null

The matching part.

getPartByMimeType()

Returns the part that has a content type matching the passed mime type at the given index, or null if there are no matching parts.

public getPartByMimeType(mixed $mimeType, mixed $index) : IMessagePart|null

Creates a filter that looks at the return value of IMessagePart::getContentType() for all parts (including the current part) and returns a matching one at the given 0-based index.

Parameters
$mimeType : mixed

The mime type to find.

$index : mixed

Optional 0-based index (defaulting to '0').

Return values
IMessagePart|null

The part.

getPartCount()

Returns the total number of parts in this and all children.

public getPartCount([mixed $fnFilter = null ]) : int

Note that the current part is considered, so the minimum getPartCount is 1 without a filter.

The passed callable must accept an IMessagePart as an argument, and return true if it should be accepted, or false to filter the part out. Some default filters are provided by static functions returning callables in PartFilter.

Parameters
$fnFilter : mixed = null

Optional function accepting an IMessagePart and returning true if the part should be included.

Return values
int

The number of matching parts.

getRawHeaderIterator()

Returns an iterator to all headers in this part. Each returned element is an array with its first element set to the header's name, and the second to its raw value:

public getRawHeaderIterator() : Iterator

[ 'Header-Name', 'Header Value' ]

Return values
Iterator

an iterator for raw headers

getRawHeaders()

Returns a two dimensional string array of all headers for the mime part with the first element holding the name, and the second its raw string value:

public getRawHeaders() : array<string|int, array<string|int, string>>

[ [ '1st-Header-Name', 'Header Value' ], [ '2nd-Header-Name', 'Header Value' ] ]

Return values
array<string|int, array<string|int, string>>

an array of raw headers

getResourceHandle()

Returns a resource handle for the string representation of this part, containing its headers, content and children. For an IMessage, this would be the entire RFC822 (or greater) email.

public getResourceHandle() : resource

If the part has not been modified and represents a parsed part, the original stream should be returned. Otherwise a stream representation of the part including its modifications should be returned. This insures that an unmodified, signed message could be passed on that way even after parsing and reading.

The returned stream is not guaranteed to be RFC822 (or greater) compliant for the following reasons:

  • The original email or part, if not modified, is returned as-is and may not be compliant.
  • Although certain parts may have been modified, an original unmodified header from the original email or part may not be compliant.
  • A user may set headers in a non-compliant format.
Return values
resource

the resource handle containing the part.

getStream()

Returns a Psr7 StreamInterface for the string representation of this part, containing its headers, content and children.

public getStream() : StreamInterface

If the part has not been modified and represents a parsed part, the original stream should be returned. Otherwise a stream representation of the part including its modifications should be returned. This insures that an unmodified, signed message could be passed on that way even after parsing and reading.

The returned stream is not guaranteed to be RFC822 (or greater) compliant for the following reasons:

  • The original email or part, if not modified, is returned as-is and may not be compliant.
  • Although certain parts may have been modified, an original unmodified header from the original email or part may not be compliant.
  • A user may set headers in a non-compliant format.
Return values
StreamInterface

the stream containing the part.

hasContent()

Returns true if the part contains a 'body' (content).

public hasContent() : bool
Return values
bool

isMime()

Returns true.

public isMime() : bool
Return values
bool

isMultiPart()

Returns true if this part's content type matches multipart/*

public isMultiPart() : bool
Return values
bool

isSignaturePart()

Returns true if this part's parent is an IMessage, and is the same part returned by {@see IMessage::getSignaturePart()}.

public isSignaturePart() : bool
Return values
bool

isTextPart()

Returns true if this part has a defined 'charset' on its Content-Type header.

public isTextPart() : bool

This may result in some false positives if charset is set on a part that is not plain text which has been seen. If a part is known to be binary, it's better to use IMessagePart::getBinaryContentStream() to avoid issues, or to call IMessagePart::saveContent() directly if saving a part's content.

Return values
bool

notify()

public notify() : void
Return values
void

removeAllParts()

Removes all parts below the current part. If a callable filter is passed, removes only those matching the passed filter. The number of removed parts is returned.

public removeAllParts([mixed $fnFilter = null ]) : int

Note: the current part will not be removed. Although the function naming matches getAllParts, which returns the current part, it also doesn't only remove direct children like getChildParts. Internally this function uses getAllParts but the current part is filtered out if returned.

Parameters
$fnFilter : mixed = null

Optional function accepting an IMessagePart and returning true if the part should be included.

Return values
int

The number of removed parts.

removeHeader()

Removes all headers from this part with the passed name.

public removeHeader(string $name) : static
Parameters
$name : string

The name of the header(s) to remove.

Return values
static

removePart()

Removes the child part from this part and returns its previous position or null if it wasn't found.

public removePart(IMessagePart $part) : int|null

Note that if the part is not a direct child of this part, the returned position is its index within its parent (calls removePart on its direct parent).

This also means that parts from unrelated parts/messages could be removed by a call to removePart -- it will always remove the part from its parent if it has one, essentially calling php $part->getParent()->removePart(); .

Parameters
$part : IMessagePart

The part to remove

Return values
int|null

The previous index position of the part within its old parent.

removeSingleHeader()

Removes a single header with the passed name (in cases where more than one may exist, and others should be preserved).

public removeSingleHeader(string $name, int $offset) : static
Parameters
$name : string

The name of the header to remove

$offset : int

Optional offset of the header to remove (defaults to 0 -- the first header).

Return values
static

save()

Writes a string representation of this part, including its headers, content and children to the passed file, resource, or stream.

public save(mixed $filenameResourceOrStream[, string $filemode = 'w+' ]) : static
Parameters
$filenameResourceOrStream : mixed

the file, resource, or stream to write to.

$filemode : string = 'w+'

Optional filemode to open a file in (if $filenameResourceOrStream is a string)

Return values
static

saveContent()

Saves the binary content of the stream to the passed file, resource or stream.

public saveContent(mixed $filenameResourceOrStream) : self

Note that charset conversion is not performed in this case, and the contents of the part are saved in their binary format as transmitted (but after any content-transfer decoding is performed). IMessagePart::getBinaryContentStream() for a more detailed description of the stream.

If the passed parameter is a string, it's assumed to be a filename to write to. The file is opened in 'w+' mode, and closed before returning.

When passing a resource or Psr7 Stream, the resource is not closed, nor rewound.

Parameters
$filenameResourceOrStream : mixed
Return values
self

setCharsetOverride()

Overrides the default character set used for reading content from content streams in cases where a user knows the source charset is not what is specified.

public setCharsetOverride(string $charsetOverride[, bool $onlyIfNoCharset = false ]) : static
Parameters
$charsetOverride : string

the actual charset of the content.

$onlyIfNoCharset : bool = false

if true, $charsetOverride is used only if getCharset returns null.

Return values
static

setContent()

Sets the content of the part to the passed string, resource, or stream.

public setContent(mixed $resource[, string $charset = MailMimeParser::DEFAULT_CHARSET ]) : static
Parameters
$resource : mixed

the content.

$charset : string = MailMimeParser::DEFAULT_CHARSET
Return values
static

setRawHeader()

Adds a header with the given $name and $value. An optional $offset may be passed, which will overwrite a header if one exists with the given name and offset only. Otherwise a new header is added. The passed $offset may be ignored in that case if it doesn't represent the next insert position for the header with the passed name... instead it would be 'pushed' on at the next position.

public setRawHeader(string $name, string|null $value, int $offset) : static
Parameters
$name : string

The name of the new header, e.g. 'Content-Type'.

$value : string|null

The raw value of the new header.

$offset : int

An optional offset, defaulting to '0' and therefore overriding the first header of the given $name if one exists.

Return values
static

getAllPartsIterator()

private getAllPartsIterator() : AppendIterator
Return values
AppendIterator

iteratorFindAt()

private iteratorFindAt(Iterator $iter, mixed $index[, mixed $fnFilter = null ]) : mixed
Parameters
$iter : Iterator
$index : mixed
$fnFilter : mixed = null
Return values
mixed

Search results