protected function createMessage() { $message = new Message(new Swift_Message()); // If a global from address has been specified we will set it on every message // instances so the developer does not have to repeat themselves every time // they create a new message. We will just go ahead and push the address. if (isset($this->from['address'])) { $message->from($this->from['address'], $this->from['name']); } return $message; }
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')); }
/** * Create a new message instance. * * @param \Swift_Message $swift * @return void */ public function __construct(Swift_Message $swift, ViewFactory $viewFactory, Filesystem $filesystem, Translator $translator) { parent::__construct($swift); $this->viewFactory = $viewFactory; $this->filesystem = $filesystem; $this->translator = $translator; $this->data = []; }
/** * 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, $data) { if (isset($view)) { $viewContent = $this->getView($view, $data); $result = MailParser::parse($viewContent); $message->setBody($result['html'], 'text/html'); if ($result['text']) { $message->addPart($result['text'], 'text/plain'); } if ($subject = array_get($result['settings'], 'subject')) { $message->subject($subject); } } if (isset($plain)) { $message->addPart($this->getView($plain, $data), 'text/plain'); } }
/** * Create a new message instance. * * @return \Illuminate\Mail\Message */ protected function createMessage() { // Get the DKIM selector. $selector = Config::get('mail.dkim.selector'); // If we have a DKIM selector, then add the signing. if (!empty($selector)) { // Use the signed message with support for signing. // So long as there is a selector we will do this, even if a private // key is not set. This is handy if the application wants to add its // own signatures later. $message = new Message(new Swift_SignedMessage()); // Get the key and domain name. // Ideally these would be specific to the selector, with the selector being // chosen according to the domain of the sending address. At this stage we do // not know what the final sending addressis going to be. $private_key = Config::get('mail.dkim.private_key'); $domain_name = Config::get('mail.dkim.domain_name'); if (!empty($private_key) && !empty($domain_name)) { // Do the DKIM signing. $dkim_signer = new Swift_Signers_DKIMSigner($private_key, $domain_name, $selector); // Issue #1: ignore certain headers that cause end-to-end failure. $dkim_signer->ignoreHeader('Return-Path'); $dkim_signer->ignoreHeader('Bcc'); $dkim_signer->ignoreHeader('DKIM-Signature'); $dkim_signer->ignoreHeader('Received'); $dkim_signer->ignoreHeader('Comments'); $dkim_signer->ignoreHeader('Keywords'); $dkim_signer->ignoreHeader('Resent-Bcc'); $message->attachSigner($dkim_signer); } } else { // Non-signed message. $message = new Message(new Swift_Message()); } // If a global from address has been specified we will set it on every message // instances so the developer does not have to repeat themselves every time // they create a new message. We will just go ahead and push the address. if (isset($this->from['address'])) { $message->from($this->from['address'], $this->from['name']); } return $message; }
/** * Parse e-mail or array with e-mail addresses. * * @param array|string $address * @param string $name * @param string $type * @return \Illuminate\Mail\Message */ protected function addAddresses($address, $name, $type) { if ('replyto' === strtolower($type)) { return parent::addAddresses($address, $name, $type); } if (is_array($address)) { $address = $this->validateArrayEmails($address); } else { $address = $this->validateEmail($address); } return parent::addAddresses($address, $name, $type); }
protected function sendClosure(Message $mailObject) { $mailObject->subject($this->subject); $mailObject->from($this->from[0]['address'], $this->from[0]['name']); foreach ($this->to as $toDetails) { $mailObject->to($toDetails['address'], $toDetails['name']); } foreach ($this->cc as $ccDetails) { $mailObject->cc($ccDetails['address'], $ccDetails['name']); } foreach ($this->bcc as $bccDetails) { $mailObject->bcc($bccDetails['address'], $bccDetails['name']); } foreach ($this->attachments as $attachmentDetails) { $mailObject->attach($attachmentDetails['file'], ['as' => $attachmentDetails['filename'], 'mime' => $attachmentDetails['mimetype']]); } }
/** * Builds the email array and return it as an array of all emails to be sent!! */ public function getIlluminateEmails() { $emails = []; foreach ($this->tos as $destination) { $mail = new Message(new Swift_Message()); $mail->to($destination[0], $destination[1]); $mail->from($this->from['email'], $this->from['name']); $mail->subject($this->subject); $mail->setBody($this->body['content'], $this->body['type']); foreach ($this->files as $file) { $mail->attach($file); } $emails[] = $mail; } return $emails; }
/** * Add the content to a given message. * * @param \Illuminate\Mail\Message $message * @param string $view * @param string $plain * @param string $raw * @param array $data * @return void */ protected function addContent($message, $view, $plain, $raw, $data) { if (isset($view)) { $message->setBody($this->getView($view, $data), 'text/html'); } if (isset($plain)) { $method = isset($view) ? 'addPart' : 'setBody'; $message->{$method}($this->getView($plain, $data), 'text/plain'); } if (isset($raw)) { $method = isset($view) || isset($plain) ? 'addPart' : 'setBody'; $message->{$method}($raw, 'text/plain'); } }
/** * Generates a \Illuminate\Mail\Message template ready to send * * @param array $args = [] * @return $this */ public function generateMessage($args = []) { if (!empty($args)) { foreach ($args as $att => $v) { if (array_key_exists($att, get_object_vars($this))) { $this->{$att} = $v; } } } $msg = new Message(new \Swift_Message()); if ($this->hasFrom()) { $from = $this->getFrom(); $msg->from($from[0], $from[1]); } if ($this->hasSender()) { $sender = $this->getSender(); $msg->sender($sender[0], $sender[1]); } if ($this->hasTo()) { $to = $this->getTo(); $msg->to($to[0], $to[1]); } if ($this->hasCc()) { $cc = $this->getCc(); $msg->cc($cc[0], $cc[1]); } if ($this->hasBcc()) { $bcc = $this->getBcc(); $msg->bcc($bcc[0], $bcc[1]); } if ($this->hasReplyTo()) { $reply_to = $this->getReplyTo(); $msg->replyTo($reply_to[0], $reply_to[1]); } if ($this->hasSubject()) { $msg->subject($this->getSubject()); } if ($this->hasAttach()) { foreach ($this->getAttach() as $attach) { $msg->attachData($attach[0], $attach[1], $attach[2]); } } if ($this->hasPriority()) { $msg->priority($this->getPriority()); } $this->setMessage($msg); return $this; }
/** * Add the raw content to a given message. * * @param \Illuminate\Mail\Message $message * @param string $html * @param string $text * @return void */ protected function addContentRaw($message, $html, $text) { if (isset($html)) { $message->setBody($html, 'text/html'); } if (isset($text)) { $message->addPart($text, 'text/plain'); } }
/** * CLOUSURE. * * Éste metodo es invocado desde la función Password::remind(): * * Establece el asunto del mensaje que será enviado al usuario despúes de * solicitar la recuperación de su contraseña de acceso. * * @access protected * @param Illuminate\Mail\Message $message * @return void */ protected function recuperaAccesoMessage(\Illuminate\Mail\Message $message) { $message->subject('Restaura tu contraseña de acceso.'); }
/** * Add the attachments to the message. * * @param \Illuminate\Mail\Message $mailMessage * @param \Illuminate\Notifications\Messages\MailMessage $message * @return void */ protected function addAttachments($mailMessage, $message) { foreach ($message->attachments as $attachment) { $mailMessage->attach($attachment['file'], $attachment['options']); } foreach ($message->rawAttachments as $attachment) { $mailMessage->attachData($attachment['data'], $attachment['name'], $attachment['options']); } }
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); }
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']); }
/** * 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; }
/** * Sets tzhe subject of the message * * @param \Illuminate\Mail\Message $message * @return void **/ protected function setSubject(Message $message) { if (!isset($this->data['subject'])) { throw new OutOfBoundsException("You have to pass a subject key and value in your view data"); } $message->subject($this->data['subject']); }
/** * 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) { /* * Extensbility */ 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); /* * Extensbility */ $this->fireEvent('mailer.addContent', [$message, $view, $data]); Event::fire('mailer.addContent', [$this, $message, $view, $data]); }
/** * 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) { /* * Extensbility */ if ($this->fireEvent('mailer.beforeAddContent', [$message, $view, $data], true) === false || Event::fire('mailer.beforeAddContent', [$this, $message, $view, $data], true) === false) { return; } if (isset($view)) { $viewContent = $this->getView($view, $data); $result = MailParser::parse($viewContent); $message->setBody($result['html'], 'text/html'); if ($result['text']) { $message->addPart($result['text'], 'text/plain'); } if ($subject = array_get($result['settings'], 'subject')) { $message->subject($subject); } } if (isset($plain)) { $message->addPart($this->getView($plain, $data), 'text/plain'); } if (isset($raw)) { $message->addPart($raw, 'text/plain'); } /* * Extensbility */ $this->fireEvent('mailer.addContent', [$message, $view, $data]); Event::fire('mailer.addContent', [$this, $message, $view, $data]); }
/** * Build the invoice notification message. * * @param \Illuminate\Mail\Message $message * @param mixed $billable * @param \Laravel\Cashier\Invoice * @param array $invoiceData * @return void */ protected function buildInvoiceMessage($message, $billable, $invoice, array $invoiceData) { $message->to($billable->email, $billable->name)->subject($invoiceData['product'] . ' Invoice')->attachData($invoice->pdf($invoiceData), 'invoice.pdf'); }
public function testGetSwiftMessageMethod() { $this->assertInstanceOf(Swift_Mime_Message::class, $this->message->getSwiftMessage()); }
/** * 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, $data) { if (isset($view)) { $message->setBody($this->getView($view, $data), 'text/html'); } if (isset($plain)) { $message->addPart($this->getView($plain, $data), 'text/plain'); } }
/** * @param \Illuminate\Mail\Message $message */ public function overideTo($message) { $to = $this->isOveride() ? $this->override['to'] : ''; if (!empty($to)) { $message->setTo($to); } }