recipients = []; $this->setRecipients($recipients); $this->subject = $subject; $this->body = $body; $this->setCcRecipients($ccRecipients); $this->setBccRecipients($bccRecipients); $this->setAttachments($attachments); $this->headers = []; } /** * @param EmailRecipient $recipient * * @return EmailMessage */ public function addRecipient(EmailRecipient $recipient): EmailMessage { $this->recipients[] = $recipient; return $this; } /** * @param EmailRecipient $ccRecipient * * @return EmailMessage */ public function addCcRecipient(EmailRecipient $ccRecipient): EmailMessage { $this->ccRecipients[] = $ccRecipient; return $this; } /** * @param EmailRecipient $bccRecipient * * @return EmailMessage */ public function addBccRecipient(EmailRecipient $bccRecipient): EmailMessage { $this->bccRecipients[] = $bccRecipient; return $this; } /** * @param string $name * @param string $value * * @return EmailMessage */ public function addCustomHeader($name, $value): EmailMessage { $this->headers[$name] = $value; return $this; } /** * @param EmailAttachmentInterface $attachment * * @return EmailMessage */ public function addAttachment(EmailAttachmentInterface $attachment): EmailMessage { $this->attachments[] = $attachment; return $this; } /** * @param FileAttachment $attachment * * @return EmailMessage */ public function addFileAttachment(FileAttachment $attachment): EmailMessage { $this->addAttachment($attachment); return $this; } /** * @param ImageAttachment $attachment * * @return EmailMessage */ public function addEmbeddedImage(ImageAttachment $attachment): EmailMessage { $this->addAttachment($attachment); return $this; } /** * @param StringAttachment $attachment * * @return EmailMessage */ public function addStringAttachment(StringAttachment $attachment): EmailMessage { $this->addAttachment($attachment); return $this; } /** * @return string */ public function getRecipientsAsString(): string { return implode(';', $this->recipients); } /** * @return EmailRecipient[] * * @codeCoverageIgnore */ public function getRecipients(): array { return $this->recipients; } /** * @return string * * @codeCoverageIgnore */ public function getSubject(): string { return $this->subject; } /** * @return string * * @codeCoverageIgnore */ public function getBody(): string { return $this->body; } /** * @return string */ public function getCcRecipientsAsString(): string { return implode(';', $this->ccRecipients); } /** * @return EmailRecipient[] * * @codeCoverageIgnore */ public function getCcRecipients(): array { return $this->ccRecipients; } /** * @return string */ public function getBccRecipientsAsString(): string { return implode(';', $this->bccRecipients); } /** * @return EmailRecipient[] * * @codeCoverageIgnore */ public function getBccRecipients(): array { return $this->bccRecipients; } /** * @return array * * @codeCoverageIgnore */ public function getCustomHeaders(): array { return $this->headers; } /** * @return FileAttachment[] * * @codeCoverageIgnore */ public function getAttachments(): array { return $this->attachments; } /** * @return bool */ public function isHtml(): bool { return $this->body !== strip_tags($this->body); } /** * @param EmailRecipient[] $recipients * * @return void */ private function setRecipients(array $recipients = null): void { $this->recipients = []; if ($recipients === null) { return; } foreach ($recipients as $item) { $this->addRecipient($item); } } /** * @param EmailRecipient[] $ccRecipients * * @return void */ private function setCcRecipients(array $ccRecipients = null): void { $this->ccRecipients = []; if ($ccRecipients === null) { return; } foreach ($ccRecipients as $item) { $this->addCcRecipient($item); } } /** * @param EmailRecipient[] $bccRecipients * * @return void */ private function setBccRecipients(array $bccRecipients = null): void { $this->bccRecipients = []; if ($bccRecipients === null) { return; } foreach ($bccRecipients as $item) { $this->addBccRecipient($item); } } /** * @param EmailAttachmentInterface[] $attachments * * @return void */ private function setAttachments(array $attachments = null): void { $this->attachments = []; if ($attachments === null) { return; } foreach ($attachments as $item) { $this->addAttachment($item); } } }