mdedit3-api/classes/email.class.php
Guillaume RYCKELYNCK b864cb1820 first commit
2022-01-31 19:06:50 +01:00

96 lines
2.8 KiB
PHP

<?php
namespace MdEditApi;
require_once __DIR__ . '/helpers.class.php';
require_once __DIR__ . '/../vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
/**
* Class Eamil permet d'envoyer des emails simples
*
* Exemple:
* ```
* require_once './email.class.php';
*
* ```
*
*/
class Email
{
protected $from_user;
protected $from_email;
protected $to;
protected $subject;
protected $message;
protected $headers;
public function __construct($email = false)
{
$this->getEmailInfo($email);
}
private function getEmailInfo($email = false)
{
$this->from_user = $email ? $email['from_user'] : false;
$this->from_email = $email ? $email['from_email'] : false;
$this->to_user = $email ? $email['to_user'] : false;
$this->to_email = $email ? $email['to_email'] : false;
$this->subject = $email ? $email['subject'] : false;
$this->message = $email ? $email['message'] : false;
// $this->headers = [];
// $this->headers[] = 'MIME-Version: 1.0';
// $this->headers[] = 'Content-type: text/html; charset=iso-8859-1';
// $this->headers[] = 'Content-Type: text/plain; charset=utf-8';
// En-têtes additionnels
// $this->headers[] = 'To: ' . $this->to;
// $this->headers[] = 'From: ' . $this->from_user . '<' . $this->from_email . '>';
// $this->headers[] = 'Reply-To: ' . $this->from;
// $this->headers[] = 'X-Mailer: PHP/' . phpversion();
}
public function send($email = false)
{
$result = [
'success' => False,
'error' => False,
'message' => []
];
if ($email) {
$this->getEmailInfo($email);
}
// Envoi
// $success = mail($this->to, $this->subject, $this->message, implode("\r\n", $this->headers));
// if (!$success) {
// $result['error'] = error_get_last()['message'];
// } else {
// $result['success'] = True;
// }
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.georchestra-smtp';
$mail->SMTPAuth = false;
$mail->Port = 25;
$mail->setFrom($this->from_email, $this->from_user);
$mail->addReplyTo($this->from_email, $this->from_user);
$mail->addAddress($this->to_email, $this->to_user);
$mail->Subject = $this->subject;
$mail->isHTML(true);
// $mail->msgHTML(file_get_contents('test_phpmailer_email.html'), __DIR__);
$mail->Body = $this->message;
if($mail->send()){
$result['success'] = True;
$result['message'] = ['Message has been sent.'];
}else{
$result['error'] = True;
$result['message'] = ['Message could not be sent.', 'Mailer Error: ' . $mail->ErrorInfo];
}
return $result;
}
}