%PDF- %PDF-
Direktori : /home/silvzytp/dsr_code/vendor/laravel/framework/src/Illuminate/Mail/ |
Current File : //home/silvzytp/dsr_code/vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php |
<?php namespace Illuminate\Mail; use Illuminate\Contracts\Mail\Mailable as MailableContract; use Illuminate\Contracts\Mail\Mailer as MailerContract; use Illuminate\Contracts\Translation\HasLocalePreference; use Illuminate\Support\Traits\Conditionable; class PendingMail { use Conditionable; /** * The mailer instance. * * @var \Illuminate\Contracts\Mail\Mailer */ 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 \Illuminate\Contracts\Mail\Mailer $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 \Illuminate\Contracts\Mail\Mailable $mailable * @return \Illuminate\Mail\SentMessage|null */ public function send(MailableContract $mailable) { return $this->mailer->send($this->fill($mailable)); } /** * Push the given mailable onto the queue. * * @param \Illuminate\Contracts\Mail\Mailable $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 \Illuminate\Contracts\Mail\Mailable $mailable * @return mixed */ public function later($delay, MailableContract $mailable) { return $this->mailer->later($delay, $this->fill($mailable)); } /** * Populate the mailable with the addresses. * * @param \Illuminate\Contracts\Mail\Mailable $mailable * @return \Illuminate\Mail\Mailable */ 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); } }); } }