/**
  * 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());
 }
Exemple #4
0
 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]);
 }