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

namespace IlluminateMail;

use 
IlluminateContractsMailMailable as MailableContract;
use 
IlluminateContractsMailMailer as MailerContract;
use 
IlluminateContractsTranslationHasLocalePreference;
use 
IlluminateSupportTraitsConditionable;

class 
PendingMail
{
    use 
Conditionable;

    
/**
     * The mailer instance.
     *
     * @var IlluminateContractsMailMailer
     */
    
protected $mailer;

    
/**
     * The locale of the message.
     *
     * @var string
     */
    
protected $locale;

    
/**
     * The "to" recipients of the message.
     *
     * @var array
     */
    
protected $to = [];

    
/**
     * The "cc" recipients of the message.
     *
     * @var array
     */
    
protected $cc = [];

    
/**
     * The "bcc" recipients of the message.
     *
     * @var array
     */
    
protected $bcc = [];

    
/**
     * Create a new mailable mailer instance.
     *
     * @param  IlluminateContractsMailMailer  $mailer
     * @return void
     */
    
public function __construct(MailerContract $mailer)
    {
        
$this->mailer $mailer;
    }

    
/**
     * Set the locale of the message.
     *
     * @param  string  $locale
     * @return $this
     */
    
public function locale($locale)
    {
        
$this->locale $locale;

        return 
$this;
    }

    
/**
     * Set the recipients of the message.
     *
     * @param  mixed  $users
     * @return $this
     */
    
public function to($users)
    {
        
$this->to $users;

        if (! 
$this->locale && $users instanceof HasLocalePreference) {
            
$this->locale($users->preferredLocale());
        }

        return 
$this;
    }

    
/**
     * Set the recipients of the message.
     *
     * @param  mixed  $users
     * @return $this
     */
    
public function cc($users)
    {
        
$this->cc $users;

        return 
$this;
    }

    
/**
     * Set the recipients of the message.
     *
     * @param  mixed  $users
     * @return $this
     */
    
public function bcc($users)
    {
        
$this->bcc $users;

        return 
$this;
    }

    
/**
     * Send a new mailable message instance.
     *
     * @param  IlluminateContractsMailMailable  $mailable
     * @return IlluminateMailSentMessage|null
     */
    
public function send(MailableContract $mailable)
    {
        return 
$this->mailer->send($this->fill($mailable));
    }

    
/**
     * Push the given mailable onto the queue.
     *
     * @param  IlluminateContractsMailMailable  $mailable
     * @return mixed
     */
    
public function queue(MailableContract $mailable)
    {
        return 
$this->mailer->queue($this->fill($mailable));
    }

    
/**
     * Deliver the queued message after (n) seconds.
     *
     * @param  DateTimeInterface|DateInterval|int  $delay
     * @param  IlluminateContractsMailMailable  $mailable
     * @return mixed
     */
    
public function later($delayMailableContract $mailable)
    {
        return 
$this->mailer->later($delay$this->fill($mailable));
    }

    
/**
     * Populate the mailable with the addresses.
     *
     * @param  IlluminateContractsMailMailable  $mailable
     * @return IlluminateMailMailable
     */
    
protected function fill(MailableContract $mailable)
    {
        return 
tap($mailable->to($this->to)
            ->
cc($this->cc)
            ->
bcc($this->bcc), function (MailableContract $mailable) {
                if (
$this->locale) {
                    
$mailable->locale($this->locale);
                }
            });
    }
}
Онлайн: 0
Реклама