public function testGetAttachments()
 {
     $getAttachment = \Closure::bind(function ($message) {
         return $this->getAttachments($message);
     }, $this->transport, 'Sichikawa\\LaravelSendgridDriver\\Transport\\SendgridTransport');
     $message = new Message($this->getMessage());
     $file = __DIR__ . '/test.png';
     $message->attach($file);
     $res = $getAttachment($message->getSwiftMessage());
     $this->assertEquals(base64_encode(file_get_contents($file)), array_get($res, '0.content'));
     $this->assertEquals('test.png', array_get($res, '0.filename'));
 }
Ejemplo n.º 2
0
 /**
  * Run the callbacks for the message.
  *
  * @param  \Illuminate\Mail\Message  $message
  * @return $this
  */
 protected function runCallbacks($message)
 {
     foreach ($this->callbacks as $callback) {
         $callback($message->getSwiftMessage());
     }
     return $this;
 }
Ejemplo n.º 3
0
 /**
  * Add the content to a given message.
  *
  * @param  \Illuminate\Mail\Message $message
  * @param  string $view
  * @param  string $plain
  * @param  array $data
  * @return void
  */
 protected function addContent($message, $view, $plain, $raw, $data)
 {
     /*
      * Extensibility
      */
     if ($this->fireEvent('mailer.beforeAddContent', [$message, $view, $data], true) === false || Event::fire('mailer.beforeAddContent', [$this, $message, $view, $data], true) === false) {
         return;
     }
     $html = null;
     $text = null;
     if (isset($view)) {
         $viewContent = $this->getView($view, $data);
         $result = MailParser::parse($viewContent);
         $html = $result['html'];
         if ($result['text']) {
             $text = $result['text'];
         }
         /*
          * Subject
          */
         $customSubject = $message->getSwiftMessage()->getSubject();
         if (empty($customSubject) && ($subject = array_get($result['settings'], 'subject'))) {
             $message->subject($subject);
         }
     }
     if (isset($plain)) {
         $text = $this->getView($plain, $data);
     }
     if (isset($raw)) {
         $text = $raw;
     }
     $this->addContentRaw($message, $html, $text);
     /*
      * Extensibility
      */
     $this->fireEvent('mailer.addContent', [$message, $view, $data]);
     Event::fire('mailer.addContent', [$this, $message, $view, $data]);
 }
 public function testSetSmtpApi()
 {
     $setSmtpApi = \Closure::bind(function (&$data, $message) {
         return $this->setSmtpApi($data, $message);
     }, $this->transport, 'Sichikawa\\LaravelSendgridDriver\\Transport\\SendGridTransport');
     $data = [];
     $message = new Message($this->getMessage());
     $message->embedData(['category' => 'foo'], 'sendgrid/x-smtpapi');
     $setSmtpApi($data, $message->getSwiftMessage());
     $this->assertEquals(json_encode(['category' => 'foo']), $data['x-smtpapi']);
 }
Ejemplo n.º 5
0
 public function testGetSwiftMessageMethod()
 {
     $this->assertInstanceOf(Swift_Mime_Message::class, $this->message->getSwiftMessage());
 }
 public function testSetPersonalizations()
 {
     $setParameters = \Closure::bind(function ($message, $data) {
         return $this->setParameters($message, $data);
     }, $this->transport, SendgridV3Transport::class);
     $personalizations = [['substitutions' => ['substitutions_key' => 'substitutions_value'], 'custom_args' => ['custom_args_key' => 'custom_args_value'], 'send_at' => time()]];
     $message = new Message($this->getMessage());
     $message->embedData(['personalizations' => $personalizations], 'sendgrid/x-smtpapi');
     $data = [];
     $data = $setParameters($message->getSwiftMessage(), $data);
     $this->assertEquals(['personalizations' => $personalizations], $data);
 }