/** * Adds an email attachment * * @param string $fileName * @param string $content * @param string $contentType * @param string $contentTransferEncoding * @throws \LogicException */ public function addEmailAttachment($fileName, $content, $contentType, $contentTransferEncoding) { if ($this->emailBody === null) { throw new \LogicException('Call setEmailBody first.'); } $emailAttachment = new EmailAttachment(); $emailAttachmentContent = new EmailAttachmentContent(); $emailAttachmentContent->setEmailAttachment($emailAttachment)->setContentTransferEncoding($contentTransferEncoding)->setValue($content); $emailAttachment->setFileName($fileName)->setContentType($contentType)->setContent($emailAttachmentContent); $this->emailBody->addAttachment($emailAttachment); }
/** * Adds an email attachment * * @param string $fileName * @param string $content * @param string $contentType * @param string $contentTransferEncoding * @param null|string $embeddedContentId * @param null|int $contentSize * * @throws \LogicException */ public function addEmailAttachment($fileName, $content, $contentType, $contentTransferEncoding, $embeddedContentId = null, $contentSize = null) { if ($this->emailBody === null) { throw new \LogicException('Call setEmailBody first.'); } if (!$this->allowSaveAttachment($this->checkContentSizeValue($content, $contentSize, $contentTransferEncoding))) { return; } $emailAttachment = new EmailAttachment(); $emailAttachmentContent = new EmailAttachmentContent(); $emailAttachmentContent->setEmailAttachment($emailAttachment)->setContentTransferEncoding($contentTransferEncoding)->setContent($content); $emailAttachment->setFileName($fileName)->setContentType($contentType)->setContent($emailAttachmentContent)->setEmbeddedContentId($embeddedContentId); $this->emailBody->addAttachment($emailAttachment); }
/** * @dataProvider replaceDataProvider * @param $bodyTemplate * @param array $attachments */ public function testReplace($bodyTemplate, array $attachments) { $email = new Email(); $emailBody = new EmailBody(); $replacements = []; $contentIds = []; foreach ($attachments as $attachmentData) { $attachment = new EmailAttachment(); $emailAttachmentContent = new EmailAttachmentContent(); $emailAttachmentContent->setContent($attachmentData['content'])->setContentTransferEncoding($attachmentData['transfer_encoding']); $attachment->setEmbeddedContentId($attachmentData['content_id'])->setContentType($attachmentData['type'])->setContent($emailAttachmentContent); $emailBody->addAttachment($attachment); $cid = 'cid:' . $attachmentData['content_id']; $contentIds[] = $cid; if ($attachmentData['replace']) { $replacements[] = sprintf('data:%s;base64,%s', $attachmentData['type'], $attachmentData['content']); } else { $replacements[] = $cid; } } $emailBody->setBodyContent(vsprintf($bodyTemplate, $contentIds)); $email->setEmailBody($emailBody); $event = new EmailBodyLoaded($email); $this->listener->replace($event); $this->assertEquals($email, $event->getEmail()); $this->assertEquals(vsprintf($bodyTemplate, $replacements), $event->getEmail()->getEmailBody()->getBodyContent()); }
public function testAttachmentGetterAndSetter() { $attachment = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\EmailAttachment'); $entity = new EmailBody(); $entity->addAttachment($attachment); $attachments = $entity->getAttachments(); $this->assertInstanceOf('Doctrine\\Common\\Collections\\ArrayCollection', $attachments); $this->assertCount(1, $attachments); $this->assertTrue($attachment === $attachments[0]); }