20220717
This commit is contained in:
166
vendor/illuminate/mail/PendingMail.php
vendored
Normal file
166
vendor/illuminate/mail/PendingMail.php
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
<?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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user