MultipartHelper extends AbstractHelper
Provides various routines to manipulate and create multipart messages from an existing message (e.g. to make space for attachments in a message, or to change a simple message to a multipart/alternative one, etc...)
Tags
Table of Contents
- $mimePartFactory : MimePartFactory
 - $partBuilderFactory : PartBuilderFactory
 - $uuEncodedPartFactory : UUEncodedPartFactory
 - $genericHelper : GenericHelper
 - __construct() : mixed
 - Constructor
 - createAlternativeContentPart() : MimePart
 - Creates a new mime part as a multipart/alternative and assigns the passed $contentPart as a part below it before returning it.
 - createAndAddPartForAttachment() : MimePart
 - Creates and adds a MimePart for the passed content and options as an attachment.
 - createContentPartForMimeType() : MimePart
 - Creates a new content part for the passed mimeType and charset, making space by creating a multipart/alternative if needed
 - createMultipartRelatedPartForInlineChildrenOf() : MimePart
 - Creates a multipart/related part out of 'inline' children of $parent and returns it.
 - enforceMime() : mixed
 - Enforces the message to be a mime message for a non-mime (e.g. uuencoded or unspecified) message. If the message has uuencoded attachments, sets up the message as a multipart/mixed message and creates a separate content part.
 - findOtherContentPartFor() : MimeType
 - Finds an alternative inline part in the message and returns it if one exists.
 - getContentPartContainerFromAlternative() : bool|MimePart
 - Searches the passed $alternativePart for a part with the passed mime type and returns its parent.
 - getUniqueBoundary() : string
 - Creates and returns a unique boundary.
 - moveAllPartsAsAttachmentsExcept() : mixed
 - Moves all parts under $from into this message except those with a content-type equal to $exceptMimeType. If the message is not a multipart/mixed message, it is set to multipart/mixed first.
 - removeAllContentPartsByMimeType() : bool
 - Removes the content part of the message with the passed mime type. If there is a remaining content part and it is an alternative part of the main message, the content part is moved to the message part.
 - removeAllContentPartsFromAlternative() : bool
 - Removes all parts of $mimeType from $alternativePart.
 - removePartByMimeType() : bool
 - Removes the 'inline' part with the passed contentType, at the given index defaulting to the first
 - setContentPartForMimeType() : mixed
 - Either creates a mime part or sets the existing mime part with the passed mimeType to $strongOrHandle.
 - setMessageAsAlternative() : mixed
 - Sets the passed message as multipart/alternative.
 - setMessageAsMixed() : mixed
 - Sets the passed message as multipart/mixed.
 - setMimeHeaderBoundaryOnPart() : mixed
 - Creates a unique mime boundary and assigns it to the passed part's Content-Type header with the passed mime type.
 
Properties
$mimePartFactory
    protected
        MimePartFactory
    $mimePartFactory
    
        
    
$partBuilderFactory
    protected
        PartBuilderFactory
    $partBuilderFactory
    
        
    
$uuEncodedPartFactory
    protected
        UUEncodedPartFactory
    $uuEncodedPartFactory
    
        
    
$genericHelper
    private
        GenericHelper
    $genericHelper
    
        
    
Methods
__construct()
Constructor
    public
                __construct(MimePartFactory $mimePartFactory, UUEncodedPartFactory $uuEncodedPartFactory, PartBuilderFactory $partBuilderFactory, GenericHelper $genericHelper) : mixed
        
        Parameters
- $mimePartFactory : MimePartFactory
 - $uuEncodedPartFactory : UUEncodedPartFactory
 - $partBuilderFactory : PartBuilderFactory
 - $genericHelper : GenericHelper
 
Return values
mixed —createAlternativeContentPart()
Creates a new mime part as a multipart/alternative and assigns the passed $contentPart as a part below it before returning it.
    public
                createAlternativeContentPart(Message $message, MessagePart $contentPart) : MimePart
        
        Parameters
- $message : Message
 - $contentPart : MessagePart
 
Return values
MimePart —the alternative part
createAndAddPartForAttachment()
Creates and adds a MimePart for the passed content and options as an attachment.
    public
                createAndAddPartForAttachment(Message $message, string|resource|StreamInterface $resource, string $mimeType, string $disposition[, string $filename = null ][, string $encoding = 'base64' ]) : MimePart
        
        Parameters
- $message : Message
 - $resource : string|resource|StreamInterface
 - $mimeType : string
 - $disposition : string
 - $filename : string = null
 - $encoding : string = 'base64'
 
Return values
MimePart —createContentPartForMimeType()
Creates a new content part for the passed mimeType and charset, making space by creating a multipart/alternative if needed
    public
                createContentPartForMimeType(Message $message, string $mimeType, string $charset) : MimePart
        
        Parameters
- $message : Message
 - $mimeType : string
 - $charset : string
 
Return values
MimePart —createMultipartRelatedPartForInlineChildrenOf()
Creates a multipart/related part out of 'inline' children of $parent and returns it.
    public
                createMultipartRelatedPartForInlineChildrenOf(ParentHeaderPart $parent) : MimePart
        
        Parameters
- $parent : ParentHeaderPart
 
Return values
MimePart —enforceMime()
Enforces the message to be a mime message for a non-mime (e.g. uuencoded or unspecified) message. If the message has uuencoded attachments, sets up the message as a multipart/mixed message and creates a separate content part.
    public
                enforceMime(Message $message) : mixed
        
        Parameters
- $message : Message
 
Return values
mixed —findOtherContentPartFor()
Finds an alternative inline part in the message and returns it if one exists.
    public
                findOtherContentPartFor(Message $message, string $mimeType) : MimeType
        If the passed $mimeType is text/plain, searches for a text/html part. Otherwise searches for a text/plain part to return.
Parameters
- $message : Message
 - $mimeType : string
 
Return values
MimeType —or null if not found
getContentPartContainerFromAlternative()
Searches the passed $alternativePart for a part with the passed mime type and returns its parent.
    public
                getContentPartContainerFromAlternative(string $mimeType, ParentHeaderPart $alternativePart) : bool|MimePart
        Used for alternative mime types that have a multipart/mixed or multipart/related child containing a content part of $mimeType, where the whole mixed/related part should be removed.
Parameters
- $mimeType : string
 - 
                    
the content-type to find below $alternativePart
 - $alternativePart : ParentHeaderPart
 - 
                    
The multipart/alternative part to look under
 
Return values
bool|MimePart —false if a part is not found
getUniqueBoundary()
Creates and returns a unique boundary.
    public
                getUniqueBoundary(string $mimeType) : string
        
        Parameters
- $mimeType : string
 - 
                    
first 3 characters of a multipart type are used, e.g. REL for relative or ALT for alternative
 
Return values
string —moveAllPartsAsAttachmentsExcept()
Moves all parts under $from into this message except those with a content-type equal to $exceptMimeType. If the message is not a multipart/mixed message, it is set to multipart/mixed first.
    public
                moveAllPartsAsAttachmentsExcept(Message $message, ParentHeaderPart $from, string $exceptMimeType) : mixed
        
        Parameters
- $message : Message
 - $from : ParentHeaderPart
 - $exceptMimeType : string
 
Return values
mixed —removeAllContentPartsByMimeType()
Removes the content part of the message with the passed mime type. If there is a remaining content part and it is an alternative part of the main message, the content part is moved to the message part.
    public
                removeAllContentPartsByMimeType(Message $message, string $mimeType[, bool $keepOtherContent = false ]) : bool
        If the content part is part of an alternative part beneath the message, the alternative part is replaced by the remaining content part, optionally keeping other parts if $keepOtherContent is set to true.
Parameters
- $message : Message
 - $mimeType : string
 - $keepOtherContent : bool = false
 
Return values
bool —true on success
removeAllContentPartsFromAlternative()
Removes all parts of $mimeType from $alternativePart.
    public
                removeAllContentPartsFromAlternative(Message $message, string $mimeType, ParentHeaderPart $alternativePart, bool $keepOtherContent) : bool
        If $alternativePart contains a multipart/mixed or multipart/relative part with other parts of different content-types, the multipart part is removed, and parts of different content-types can optionally be moved to the main message part.
Parameters
- $message : Message
 - $mimeType : string
 - $alternativePart : ParentHeaderPart
 - $keepOtherContent : bool
 
Return values
bool —removePartByMimeType()
Removes the 'inline' part with the passed contentType, at the given index defaulting to the first
    public
                removePartByMimeType(Message $message, string $mimeType, int $index) : bool
        
        Parameters
- $message : Message
 - $mimeType : string
 - $index : int
 
Return values
bool —true on success
setContentPartForMimeType()
Either creates a mime part or sets the existing mime part with the passed mimeType to $strongOrHandle.
    public
                setContentPartForMimeType(Message $message, string $mimeType, string|resource $stringOrHandle, string $charset) : mixed
        
        Parameters
- $message : Message
 - $mimeType : string
 - $stringOrHandle : string|resource
 - $charset : string
 
Return values
mixed —setMessageAsAlternative()
Sets the passed message as multipart/alternative.
    public
                setMessageAsAlternative(Message $message) : mixed
        If the message has content, a new part is created and added as a child of the message. The message's content and content headers are moved to the new part.
Parameters
- $message : Message
 
Return values
mixed —setMessageAsMixed()
Sets the passed message as multipart/mixed.
    public
                setMessageAsMixed(Message $message) : mixed
        If the message has content, a new part is created and added as a child of the message. The message's content and content headers are moved to the new part.
Parameters
- $message : Message
 
Return values
mixed —setMimeHeaderBoundaryOnPart()
Creates a unique mime boundary and assigns it to the passed part's Content-Type header with the passed mime type.
    public
                setMimeHeaderBoundaryOnPart(ParentHeaderPart $part, string $mimeType) : mixed
        
        Parameters
- $part : ParentHeaderPart
 - $mimeType : string