Back | Home
الـ Path الحالي: /home/picotech/domains/instantly.picotech.app/public_html/public/uploads/../../app/./EmailProvider
الملفات الموجودة في هذا الـ Path:
.
..
AmazonSmtp.php
ElasticApi.php
ElasticSmtp.php
MailGunApi.php
MailGunSmtp.php
SendEMail.php
SendGridApi.php
SendMailInterface.php
SendMailProcess.php
Sendmail.php
Smtp.php
SparkpostSmtp.php
مشاهدة ملف: SparkpostSmtp.php
<?php
namespace App\EmailProvider;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
class SparkpostSmtp implements SendMailInterface
{
public function message($message){
$this->message = $message;
return $this;
}
public function from($from)
{
$this->from = $from;
return $this;
}
public function from_name($from_name)
{
$this->from_name = $from_name;
return $this;
}
public function reply_to($reply_to)
{
$this->reply_to = $reply_to;
return $this;
}
public function to($to)
{
$this->to = $to;
return $this;
}
public function subject($subject)
{
$this->subject = $subject;
return $this;
}
public function body($body)
{
$this->body = $body;
return $this;
}
public function files($files){
$files = json_decode($files);
$files_arr = [];
if ($files) {
foreach ($files as $file) {
$files_arr[] = $file;
}
}
$this->files = $files_arr;
return $this;
}
public function config($config){
$this->config=$config;
return $this;
}
public function process()
{
$config = array(
'driver' => 'smtp',
'host' => 'host',
'port' => 'post',
'from' => array('address' => $this->from, 'name' => $this->from_name),
'encryption' => 'ssl',
'username' => 'username',
'password' => 'password',
);
Config::set('mail', $config);
try {
$server = $this->config;
if(isset($server) && isset($server->value)) {
$config_value = json_decode($server->value);
$httpClient = new GuzzleAdapter(new Client());
$sparky = new SparkPost($httpClient, ['key' => $config_value->api_key]);
$sparky->setOptions(['async' => false]);
$results = $sparky->transmissions->post([
'options' => [
'sandbox' => true
],
'content' => [
'from' => $this->from,
'subject' => $this->subject,
'html' => $this->body
],
'recipients' => [
['address' => ['email' => $this->to]]
]
]);
}
} catch (\Exception $ex) {
Log::info($ex->getMessage());
}
}
public function errors()
{
// TODO: Implement errors() method.
}
}