Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
digitalascetic/mail / Entity / Message.php
Size: Mime:
<?php

namespace DigitalAscetic\MailBundle\Entity;

use DigitalAscetic\BaseEntityBundle\Entity\BaseObject;
use Symfony\Component\Mime\Address;

class Message extends BaseObject
{
    const MIME_TYPE_HTML = 'text/html';
    const MIME_TYPE_PLAIN = 'text/plain';

    const ACTION_REPLY = 'REPLY';
    const ACTION_REPLY_ALL = 'REPLY_ALL';
    const ACTION_FORWARD = 'FORWARD';

    /**
     * @param MessageAddress[]|MessageAddress $msgAdresses
     * @return array
     */
    public static function convertMessageAddressToRFC822($msgAdresses)
    {
        $address = array();
        if (!empty($msgAdresses)) {
            if (is_array($msgAdresses)) {
                foreach ($msgAdresses as $msgAdress) {
                    $address[$msgAdress->getAddress()] = $msgAdress->getName();
                }
            } else {
                $address[$msgAdresses->getAddress()] = $msgAdresses->getName();
            }
        }

        return $address;
    }

    public static function convertMessageAddressToAddress(MessageAddress $msgAddress): Address
    {
        return new Address($msgAddress->getAddress(), $msgAddress->getName());
    }

    public static function convertMessageAddressArrayToAddressArray(array $msgAddresses): array
    {
        $addresses = [];

        /** @var MessageAddress[] $msgAddresses */
        foreach ($msgAddresses as $msgAddress) {
            $addresses[] = new Address($msgAddress->getAddress(), $msgAddress->getName());
        }

        return $addresses;
    }

    /** @var string */
    private string $externalId;

    /** @var string|null */
    private ?string $subject = null;

    /** @var MessageAddress|null */
    private ?MessageAddress $from = null;

    /** @var MessageAddress[] */
    private $to = [];

    /** @var MessageAddress[]|null */
    private $cc = [];

    /** @var MessageAddress[]|null */
    private $bcc = [];

    /** @var \DateTime */
    private \DateTime $date;

    /** @var string|null */
    private ?string $body = null;

    /** @var string|null */
    private ?string $mimeType = null;

    /** @var MessageAttachment[]|null */
    private $attachments = [];

    /** @var string|null */
    private ?string $threadId = null;

    /** @var array */
    private $headers = [];

    /** @var string|null */
    private ?string $action = null;

    /** @var bool|null */
    private ?bool $unseen = null;

    /**
     * Message constructor.
     * @param MessageAddress $from
     * @param array $to
     * @param string $body
     */
    public function __construct(MessageAddress $from, array $to, string $body)
    {
        $this->from = $from;
        $this->to = $to;
        $this->body = $body;
    }

    /**
     * @return string
     */
    public function getExternalId(): string
    {
        return $this->externalId;
    }

    /**
     * @param string $externalId
     */
    public function setExternalId(string $externalId): void
    {
        $this->externalId = $externalId;
    }

    /**
     * @return string|null
     */
    public function getSubject(): ?string
    {
        return $this->subject;
    }

    /**
     * @param string|null $subject
     */
    public function setSubject(?string $subject): void
    {
        $this->subject = $subject;
    }

    /**
     * @return MessageAddress|null
     */
    public function getFrom(): ?MessageAddress
    {
        return $this->from;
    }

    /**
     * @param MessageAddress|null $from
     */
    public function setFrom(?MessageAddress $from): void
    {
        $this->from = $from;
    }

    /**
     * @return MessageAddress[]
     */
    public function getTo(): array
    {
        return $this->to;
    }

    /**
     * @param MessageAddress[] $to
     */
    public function setTo(array $to): void
    {
        $this->to = $to;
    }

    /**
     * @param MessageAddress $address
     */
    public function addTo(MessageAddress $address): void
    {
        array_push($this->to, $address);
    }

    /**
     * @return \DateTime
     */
    public function getDate(): \DateTime
    {
        return $this->date;
    }

    /**
     * @param \DateTime $date
     */
    public function setDate(\DateTime $date): void
    {
        $this->date = $date;
    }

    /**
     * @return string|null
     */
    public function getBody(): ?string
    {
        return $this->body;
    }

    /**
     * @param string|null $body
     */
    public function setBody(?string $body): void
    {
        $this->body = $body;
    }

    /**
     * @return string|null
     */
    public function getMimeType(): ?string
    {
        return $this->mimeType;
    }

    /**
     * @param string|null $mimeType
     */
    public function setMimeType(?string $mimeType): void
    {
        $this->mimeType = $mimeType;
    }

    /**
     * @return MessageAttachment[]|null
     */
    public function getAttachments(): ?array
    {
        return $this->attachments;
    }

    /**
     * @param MessageAttachment[]|null $attachments
     */
    public function setAttachments(?array $attachments): void
    {
        $this->attachments = $attachments;
    }

    /**
     * @param MessageAttachment $attachment
     */
    public function addAttachment(MessageAttachment $attachment): void
    {
        array_push($this->attachments, $attachment);
    }

    /**
     * @return MessageAddress[]|null
     */
    public function getCc(): ?array
    {
        return $this->cc;
    }

    /**
     * @param MessageAddress[]|null $cc
     */
    public function setCc(?array $cc): void
    {
        $this->cc = $cc;
    }

    /**
     * @param MessageAddress $address
     */
    public function addCc(MessageAddress $address): void
    {
        array_push($this->cc, $address);
    }

    /**
     * @return MessageAddress[]|null
     */
    public function getBcc(): ?array
    {
        return $this->bcc;
    }

    /**
     * @param MessageAddress[]|null $bcc
     */
    public function setBcc(?array $bcc): void
    {
        $this->bcc = $bcc;
    }

    /**
     * @param MessageAddress $address
     */
    public function addBcc(MessageAddress $address): void
    {
        array_push($this->bcc, $address);
    }

    /**
     * @return string|null
     */
    public function getThreadId(): ?string
    {
        return $this->threadId;
    }

    /**
     * @param string|null $threadId
     */
    public function setThreadId(?string $threadId): void
    {
        $this->threadId = $threadId;
    }

    /**
     * @return array
     */
    public function getHeaders(): array
    {
        return $this->headers;
    }

    /**
     * @param array $headers
     */
    public function setHeaders(array $headers): void
    {
        $this->headers = $headers;
    }

    /**
     * @return string|null
     */
    public function getAction(): ?string
    {
        return $this->action;
    }

    /**
     * @param string|null $action
     */
    public function setAction(?string $action): void
    {
        $this->action = $action;
    }

    /**
     * @return bool|null
     */
    public function getUnseen(): ?bool
    {
        return $this->unseen;
    }

    /**
     * @param bool|null $unseen
     */
    public function setUnseen(?bool $unseen): void
    {
        $this->unseen = $unseen;
    }
}