Primo Committ
This commit is contained in:
329
vendor/laravel/framework/src/Illuminate/Mail/Message.php
vendored
Executable file
329
vendor/laravel/framework/src/Illuminate/Mail/Message.php
vendored
Executable file
@@ -0,0 +1,329 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Mail;
|
||||
|
||||
use Illuminate\Support\Traits\ForwardsCalls;
|
||||
use Swift_Attachment;
|
||||
use Swift_Image;
|
||||
|
||||
/**
|
||||
* @mixin \Swift_Message
|
||||
*/
|
||||
class Message
|
||||
{
|
||||
use ForwardsCalls;
|
||||
|
||||
/**
|
||||
* The Swift Message instance.
|
||||
*
|
||||
* @var \Swift_Message
|
||||
*/
|
||||
protected $swift;
|
||||
|
||||
/**
|
||||
* CIDs of files embedded in the message.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $embeddedFiles = [];
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @param \Swift_Message $swift
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($swift)
|
||||
{
|
||||
$this->swift = $swift;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a "from" address to the message.
|
||||
*
|
||||
* @param string|array $address
|
||||
* @param string|null $name
|
||||
* @return $this
|
||||
*/
|
||||
public function from($address, $name = null)
|
||||
{
|
||||
$this->swift->setFrom($address, $name);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the "sender" of the message.
|
||||
*
|
||||
* @param string|array $address
|
||||
* @param string|null $name
|
||||
* @return $this
|
||||
*/
|
||||
public function sender($address, $name = null)
|
||||
{
|
||||
$this->swift->setSender($address, $name);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the "return path" of the message.
|
||||
*
|
||||
* @param string $address
|
||||
* @return $this
|
||||
*/
|
||||
public function returnPath($address)
|
||||
{
|
||||
$this->swift->setReturnPath($address);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a recipient to the message.
|
||||
*
|
||||
* @param string|array $address
|
||||
* @param string|null $name
|
||||
* @param bool $override
|
||||
* @return $this
|
||||
*/
|
||||
public function to($address, $name = null, $override = false)
|
||||
{
|
||||
if ($override) {
|
||||
$this->swift->setTo($address, $name);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return $this->addAddresses($address, $name, 'To');
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a carbon copy to the message.
|
||||
*
|
||||
* @param string|array $address
|
||||
* @param string|null $name
|
||||
* @param bool $override
|
||||
* @return $this
|
||||
*/
|
||||
public function cc($address, $name = null, $override = false)
|
||||
{
|
||||
if ($override) {
|
||||
$this->swift->setCc($address, $name);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return $this->addAddresses($address, $name, 'Cc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a blind carbon copy to the message.
|
||||
*
|
||||
* @param string|array $address
|
||||
* @param string|null $name
|
||||
* @param bool $override
|
||||
* @return $this
|
||||
*/
|
||||
public function bcc($address, $name = null, $override = false)
|
||||
{
|
||||
if ($override) {
|
||||
$this->swift->setBcc($address, $name);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return $this->addAddresses($address, $name, 'Bcc');
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a reply to address to the message.
|
||||
*
|
||||
* @param string|array $address
|
||||
* @param string|null $name
|
||||
* @return $this
|
||||
*/
|
||||
public function replyTo($address, $name = null)
|
||||
{
|
||||
return $this->addAddresses($address, $name, 'ReplyTo');
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a recipient to the message.
|
||||
*
|
||||
* @param string|array $address
|
||||
* @param string $name
|
||||
* @param string $type
|
||||
* @return $this
|
||||
*/
|
||||
protected function addAddresses($address, $name, $type)
|
||||
{
|
||||
if (is_array($address)) {
|
||||
$this->swift->{"set{$type}"}($address, $name);
|
||||
} else {
|
||||
$this->swift->{"add{$type}"}($address, $name);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the subject of the message.
|
||||
*
|
||||
* @param string $subject
|
||||
* @return $this
|
||||
*/
|
||||
public function subject($subject)
|
||||
{
|
||||
$this->swift->setSubject($subject);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the message priority level.
|
||||
*
|
||||
* @param int $level
|
||||
* @return $this
|
||||
*/
|
||||
public function priority($level)
|
||||
{
|
||||
$this->swift->setPriority($level);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach a file to the message.
|
||||
*
|
||||
* @param string $file
|
||||
* @param array $options
|
||||
* @return $this
|
||||
*/
|
||||
public function attach($file, array $options = [])
|
||||
{
|
||||
$attachment = $this->createAttachmentFromPath($file);
|
||||
|
||||
return $this->prepAttachment($attachment, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Swift Attachment instance.
|
||||
*
|
||||
* @param string $file
|
||||
* @return \Swift_Mime_Attachment
|
||||
*/
|
||||
protected function createAttachmentFromPath($file)
|
||||
{
|
||||
return Swift_Attachment::fromPath($file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach in-memory data as an attachment.
|
||||
*
|
||||
* @param string $data
|
||||
* @param string $name
|
||||
* @param array $options
|
||||
* @return $this
|
||||
*/
|
||||
public function attachData($data, $name, array $options = [])
|
||||
{
|
||||
$attachment = $this->createAttachmentFromData($data, $name);
|
||||
|
||||
return $this->prepAttachment($attachment, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Swift Attachment instance from data.
|
||||
*
|
||||
* @param string $data
|
||||
* @param string $name
|
||||
* @return \Swift_Attachment
|
||||
*/
|
||||
protected function createAttachmentFromData($data, $name)
|
||||
{
|
||||
return new Swift_Attachment($data, $name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Embed a file in the message and get the CID.
|
||||
*
|
||||
* @param string $file
|
||||
* @return string
|
||||
*/
|
||||
public function embed($file)
|
||||
{
|
||||
if (isset($this->embeddedFiles[$file])) {
|
||||
return $this->embeddedFiles[$file];
|
||||
}
|
||||
|
||||
return $this->embeddedFiles[$file] = $this->swift->embed(
|
||||
Swift_Image::fromPath($file)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Embed in-memory data in the message and get the CID.
|
||||
*
|
||||
* @param string $data
|
||||
* @param string $name
|
||||
* @param string|null $contentType
|
||||
* @return string
|
||||
*/
|
||||
public function embedData($data, $name, $contentType = null)
|
||||
{
|
||||
$image = new Swift_Image($data, $name, $contentType);
|
||||
|
||||
return $this->swift->embed($image);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare and attach the given attachment.
|
||||
*
|
||||
* @param \Swift_Attachment $attachment
|
||||
* @param array $options
|
||||
* @return $this
|
||||
*/
|
||||
protected function prepAttachment($attachment, $options = [])
|
||||
{
|
||||
// First we will check for a MIME type on the message, which instructs the
|
||||
// mail client on what type of attachment the file is so that it may be
|
||||
// downloaded correctly by the user. The MIME option is not required.
|
||||
if (isset($options['mime'])) {
|
||||
$attachment->setContentType($options['mime']);
|
||||
}
|
||||
|
||||
// If an alternative name was given as an option, we will set that on this
|
||||
// attachment so that it will be downloaded with the desired names from
|
||||
// the developer, otherwise the default file names will get assigned.
|
||||
if (isset($options['as'])) {
|
||||
$attachment->setFilename($options['as']);
|
||||
}
|
||||
|
||||
$this->swift->attach($attachment);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the underlying Swift Message instance.
|
||||
*
|
||||
* @return \Swift_Message
|
||||
*/
|
||||
public function getSwiftMessage()
|
||||
{
|
||||
return $this->swift;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dynamically pass missing methods to the Swift instance.
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $parameters
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($method, $parameters)
|
||||
{
|
||||
return $this->forwardCallTo($this->swift, $method, $parameters);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user