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

namespace IlluminateMailTransport;

use 
Swift_Mime_Message;
use 
GuzzleHttpPostPostFile;
use 
GuzzleHttpClientInterface;

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

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

    
/**
     * The Mailgun domain.
     *
     * @var string
     */
    
protected $domain;

    
/**
     * THe Mailgun API end-point.
     *
     * @var string
     */
    
protected $url;

    
/**
     * Create a new Mailgun transport instance.
     *
     * @param  GuzzleHttpClientInterface  $client
     * @param  string  $key
     * @param  string  $domain
     * @return void
     */
    
public function __construct(ClientInterface $client$key$domain)
    {
        
$this->key $key;
        
$this->client $client;
        
$this->setDomain($domain);
    }

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

        
$options = ['auth' => ['api'$this->key]];

        
$to $this->getTo($message);

        
$message->setBcc([]);

        if (
version_compare(ClientInterface::VERSION'6') === 1) {
            
$options['multipart'] = [
                [
'name' => 'to''contents' => $to],
                [
'name' => 'message''contents' => $message->toString(), 'filename' => 'message.mime'],
            ];
        } else {
            
$options['body'] = [
                
'to' => $to,
                
'message' => new PostFile('message'$message->toString()),
            ];
        }

        return 
$this->client->post($this->url$options);
    }

    
/**
     * Get the "to" payload field for the API request.
     *
     * @param  Swift_Mime_Message  $message
     * @return array
     */
    
protected function getTo(Swift_Mime_Message $message)
    {
        
$formatted = [];

        
$contacts array_merge(
            (array) 
$message->getTo(), (array) $message->getCc(), (array) $message->getBcc()
        );

        foreach (
$contacts as $address => $display) {
            
$formatted[] = $display $display." <$address>" $address;
        }

        return 
implode(','$formatted);
    }

    
/**
     * 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;
    }

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

    
/**
     * Set the domain being used by the transport.
     *
     * @param  string  $domain
     * @return void
     */
    
public function setDomain($domain)
    {
        
$this->url 'https://api.mailgun.net/v3/'.$domain.'/messages.mime';

        return 
$this->domain $domain;
    }
}
Онлайн: 0
Реклама