Пример #1
0
 /**
  * Sends out the system message
  *
  * Examples:
  * <code>
  *  // sends out AppBundle/Resources/emails/registration/confirmUser.xml.twig
  *  $systemMailer->send('App:registration/confirmUser', ['user' => $user]);
  *
  *  // force locale of mail
  *  $systemMailer->send('App:info-mail', ['user' => $user], 'de');
  *
  *  // attach file to mail
  *  $systemMailer->send('App:message-with-pdf', [], null, function (\Swift_Message $message) {
  *     $message->attach(\Swift_Attachment::fromPath('my-document.pdf'))
  *  });
  * </code>
  *
  * @param string   $name            The email to send out, format: YourBundle:emailXmlTemplateName
  * @param array    $parameters      The parameters passed to your email template xml
  * @param string   $locale          Overwrite default locale of session
  * @param callable $messageModifier Pass Closure to modify message before it is send (to attach files i.e.)
  */
 public function send($name, $parameters = [], $locale = null, \Closure $messageModifier = null)
 {
     $mailDefinition = $this->provider->fetchMailDefinition($name, $parameters);
     $parsedMessage = $this->parser->parseMailDefinition($mailDefinition, $locale ?: $this->locale);
     $this->handleDefaults($parsedMessage);
     $this->mailer->send($parsedMessage, $messageModifier);
 }
Пример #2
0
 public function testSendDefaultsArePopulated()
 {
     $fixture = $this->createFixture('de', ['subject' => '_1', 'replyTo' => '_2', 'from' => ['email' => '_3', 'name' => '_4'], 'to' => ['email' => '_5', 'name' => '_6'], 'cc' => ['email' => '_7', 'name' => '_8'], 'bcc' => ['email' => '_9', 'name' => '_10']]);
     $parsedMessage = $this->prophesize(ParsedMessage::class);
     $parsedMessage->getSubject()->willReturn(null);
     $parsedMessage->setSubject('_1')->shouldBeCalled();
     $parsedMessage->getReplyTo()->willReturn(null);
     $parsedMessage->setReplyTo('_2')->shouldBeCalled();
     $parsedMessage->getFrom()->willReturn([]);
     $parsedMessage->setFrom('_3', '_4')->shouldBeCalled();
     $parsedMessage->getTo()->willReturn([]);
     $parsedMessage->addTo('_5', '_6')->shouldBeCalled();
     $parsedMessage->getCc()->willReturn([]);
     $parsedMessage->addCc('_7', '_8')->shouldBeCalled();
     $parsedMessage->getBcc()->willReturn([]);
     $parsedMessage->addBcc('_9', '_10')->shouldBeCalled();
     $this->provider->fetchMailDefinition('App:test', ['param1' => 'yay!'])->willReturn('<email></email>')->shouldBeCalled();
     $this->parser->parseMailDefinition('<email></email>', 'de')->willReturn($parsedMessage)->shouldBeCalled();
     $this->mailer->send($parsedMessage, null)->shouldBeCalled();
     $fixture->send('App:test', ['param1' => 'yay!']);
 }