A super easy PHP Framework for web development!
https://github.com/exacti/phacil-framework
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.3 KiB
56 lines
1.3 KiB
10 months ago
|
<?php
|
||
|
/*
|
||
|
* Copyright © 2024 ExacTI Technology Solutions. All rights reserved.
|
||
|
* GPLv3 General License.
|
||
|
* https://exacti.com.br
|
||
|
* Phacil PHP Framework - https://github.com/exacti/phacil-framework
|
||
|
*/
|
||
|
|
||
|
namespace Phacil\Framework\Mail\Drivers;
|
||
|
|
||
|
class Native implements \Phacil\Framework\Mail\Api\DriverInterface {
|
||
|
private $from;
|
||
|
|
||
|
private $parameter;
|
||
|
|
||
|
private $subject;
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @var \Phacil\Framework\Mail\Api\MailInterface
|
||
|
*/
|
||
|
private $mail;
|
||
|
|
||
|
/**
|
||
|
* @param \Phacil\Framework\Mail\Api\MailInterface $mail
|
||
|
* @return void
|
||
|
*/
|
||
|
public function __construct(\Phacil\Framework\Mail\Api\MailInterface $mail){
|
||
|
$this->mail = $mail;
|
||
|
}
|
||
|
|
||
|
protected function validate() {
|
||
|
$this->from = $this->mail->getFrom();
|
||
|
$this->subject = $this->mail->getSubject();
|
||
|
$this->parameter = $this->mail->getParameter();
|
||
|
|
||
|
if(!$this->from || !is_string($this->from))
|
||
|
throw new \Phacil\Framework\Exception\InvalidArgumentException('Requires a valid FROM configuration');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* {@inheritdoc}
|
||
|
*/
|
||
|
public function send($to, $message, $header){
|
||
|
$this->validate();
|
||
|
|
||
|
ini_set('sendmail_from', $this->from);
|
||
|
|
||
|
if (!empty($this->parameter)) {
|
||
|
return mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);
|
||
|
} else {
|
||
|
return mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|