/** * @param string $name * @param string|null $fromEmail * @param string|null $fromName * @param string $subject * @param string $code * @param string|null $text * @param bool $publish * @param array $labels */ protected function processInsertOrUpdate($name, $fromEmail, $fromName, $subject, $code, $text, $publish, $labels) { try { $this->mandrill->templates()->add($name, $fromEmail, $fromName, $subject, $code, $text, $publish, $labels); $this->info(sprintf('"%s" template has been added.', $name)); } catch (\Mandrill_Invalid_Template $e) { $this->mandrill->templates()->update($name, $fromEmail, $fromName, $subject, $code, $text, $publish, $labels); $this->info(sprintf('"%s" template already exists. Template has been updated.', $name)); } }
/** * @param string|null $subject * @param string|null $template * @return bool * @throws \Mandrill_Error */ public function send($subject = null, $template = null) { if (null !== $subject) { $this->setSubject($subject); } if (null !== $template) { $this->setTemplate($template); } $recipients = []; foreach ($this->recipients as $recipient) { /** @var Recipient $recipient */ $recipients[] = ['email' => $recipient->getEmail(), 'name' => $recipient->getName(), 'type' => $recipient->getType()->getType()]; } $message = ['subject' => $this->subject, 'from_email' => $this->fromEmail, 'from_name' => $this->fromName, 'to' => $recipients, 'headers' => $this->headers, 'merge_vars' => $this->getLocalVariables(), 'global_merge_vars' => $this->getGlobalVariables(), 'attachments' => $this->attachments]; $this->mandrill->messages()->sendTemplate($this->template, [], $message); return true; }
public function it_sets_mailer_data(\Weblee\Mandrill\Mail $mandrill, \Mandrill_Messages $mandrillMessages) { $this->setData(['from_name' => 'John Doe', 'from_email' => '*****@*****.**', 'subject' => 'Example subject', 'template' => 'example template', 'recipients' => [new Recipient('Jane Doe', '*****@*****.**')], 'global_vars' => ['global_one' => ['name' => 'GLOBAL_ONE', 'content' => 'Example'], 'global_two' => ['name' => 'GLOBAL_TWO', 'content' => 'Another example']], 'local_vars' => ['*****@*****.**' => ['local' => ['name' => 'LOCAL', 'content' => 'Yet another example']]], 'headers' => [], 'attachments' => [['type' => 'text/csv', 'name' => 'test.csv', 'content' => 'ZXhhbXBsZTt0ZXN0Ow==']]]); $mandrill->messages()->willReturn($mandrillMessages); $mandrillMessages->sendTemplate('example template', [], ['subject' => 'Example subject', 'from_email' => '*****@*****.**', 'from_name' => 'John Doe', 'to' => [['email' => '*****@*****.**', 'name' => 'Jane Doe', 'type' => 'to']], 'headers' => [], 'merge_vars' => [['rcpt' => '*****@*****.**', 'vars' => [['name' => 'LOCAL', 'content' => 'Yet another example']]]], 'global_merge_vars' => [['name' => 'GLOBAL_ONE', 'content' => 'Example'], ['name' => 'GLOBAL_TWO', 'content' => 'Another example']], 'attachments' => [['type' => 'text/csv', 'name' => 'test.csv', 'content' => 'ZXhhbXBsZTt0ZXN0Ow==']]])->shouldBeCalled(); $this->send()->shouldReturn(true); }