Вход Регистрация
Файл: gapps/vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php
Строк: 95
<?php

namespace IlluminateMailTransport;

use 
Swift_Mime_Message;
use 
GuzzleHttpClientInterface;

class 
SparkPostTransport extends Transport
{
    
/**
     * Guzzle client instance.
     *
     * @var GuzzleHttpClientInterface
     */
    
protected $client;

    
/**
     * The SparkPost API key.
     *
     * @var string
     */
    
protected $key;

    
/**
     * Transmission options.
     *
     * @var array
     */
    
protected $options = [];

    
/**
     * Create a new SparkPost transport instance.
     *
     * @param  GuzzleHttpClientInterface  $client
     * @param  string  $key
     * @param  array  $options
     * @return void
     */
    
public function __construct(ClientInterface $client$key$options = [])
    {
        
$this->key $key;
        
$this->client $client;
        
$this->options $options;
    }

    
/**
     * {@inheritdoc}
     */
    
public function send(Swift_Mime_Message $message, &$failedRecipients null)
    {
        
$this->beforeSendPerformed($message);

        
$recipients $this->getRecipients($message);

        
$message->setBcc([]);

        
$options = [
            
'headers' => [
                
'Authorization' => $this->key,
            ],
            
'json' => [
                
'recipients' => $recipients,
                
'content' => [
                    
'email_rfc822' => $message->toString(),
                ],
            ],
        ];

        if (
$this->options) {
            
$options['json']['options'] = $this->options;
        }

        return 
$this->client->post('https://api.sparkpost.com/api/v1/transmissions'$options);
    }

    
/**
     * Get all the addresses this message should be sent to.
     *
     * Note that SparkPost still respects CC, BCC headers in raw message itself.
     *
     * @param  Swift_Mime_Message $message
     * @return array
     */
    
protected function getRecipients(Swift_Mime_Message $message)
    {
        
$to = [];

        if (
$message->getTo()) {
            
$to array_merge($toarray_keys($message->getTo()));
        }

        if (
$message->getCc()) {
            
$to array_merge($toarray_keys($message->getCc()));
        }

        if (
$message->getBcc()) {
            
$to array_merge($toarray_keys($message->getBcc()));
        }

        
$recipients array_map(function ($address) {
            return 
compact('address');
        }, 
$to);

        return 
$recipients;
    }

    
/**
     * Get the API key being used by the transport.
     *
     * @return string
     */
    
public function getKey()
    {
        return 
$this->key;
    }

    
/**
     * Set the API key being used by the transport.
     *
     * @param  string  $key
     * @return string
     */
    
public function setKey($key)
    {
        return 
$this->key $key;
    }
}
Онлайн: 0
Реклама