Comus Party 1.0.0
Application web de mini-jeux en ligne
Chargement...
Recherche...
Aucune correspondance
Mailer.php
Aller à la documentation de ce fichier.
1<?php
10
11namespace ComusParty\App;
12
13use PHPMailer\PHPMailer\Exception as MailException;
14use PHPMailer\PHPMailer\PHPMailer;
15
20class Mailer
21{
26 private array $to;
31 private string $subject;
36 private string $message;
37
38
45 public function __construct(array $to, string $subject, string $message)
46 {
47 $this->to = $to;
48 $this->subject = $subject;
49 $this->message = $message;
50 }
51
56 public function getTo(): array
57 {
58 return $this->to;
59 }
60
65 public function setTo(array $to): void
66 {
67 $this->to = $to;
68 }
69
74 public function send(): bool
75 {
76 if (empty($this->to) || empty($this->subject) || empty($this->message)) {
77 return false;
78 }
79
80 $mail = new PHPMailer(true);
81
82 try {
83 $mail->isSMTP();
84 $mail->Host = MAIL_HOST;
85 $mail->SMTPAuth = true;
86 $mail->Port = MAIL_PORT;
87 $mail->Username = MAIL_USER;
88 $mail->Password = MAIL_PASS;
89 $mail->SMTPSecure = MAIL_SECURITY;
90 $mail->setFrom(MAIL_FROM, 'Comus Party');
91 $mail->isHTML(true);
92 $mail->CharSet = 'UTF-8';
93 $mail->Encoding = 'base64';
94 $mail->Subject = $this->subject . MAIL_BASE;
95 $mail->AltBody = htmlentities($this->message);
96 $mail->Body = $this->generateHTMLMessage();
97
98 foreach ($this->to as $email) {
99 $mail->addAddress($email);
100 }
101
102 $mail->send();
103 return true;
104 } catch (MailException $e) {
105 }
106
107 return false;
108 }
109
114 public function generateHTMLMessage(): string
115 {
116 $content = file_get_contents(__DIR__ . '/../templates/mail.twig');
117 $content = str_replace('{{ subject }}', $this->getSubject(), $content);
118 $content = str_replace('{{ message }}', $this->getMessage(), $content);
119 return $content;
120 }
121
126 public function getSubject(): string
127 {
128 return $this->subject;
129 }
130
135 public function setSubject(string $subject): void
136 {
137 $this->subject = htmlentities($subject);
138 }
139
144 public function getMessage(): string
145 {
146 return $this->message;
147 }
148
153 public function setMessage(string $message): void
154 {
155 $this->message = htmlentities($message);
156 }
157}
Classe Mailer.
Definition Mailer.php:21
getMessage()
Getter de l'attribut message.
Definition Mailer.php:144
send()
Fonction permettant d'envoyer un mail.
Definition Mailer.php:74
setSubject(string $subject)
Setter de l'attribut subject.
Definition Mailer.php:135
__construct(array $to, string $subject, string $message)
Constructeur de la classe Mailer.
Definition Mailer.php:45
generateHTMLMessage()
Fonction permettant de générer un message HTML avec la template de mail.
Definition Mailer.php:114
getSubject()
Getter de l'attribut subject.
Definition Mailer.php:126
setTo(array $to)
Setter de l'attribut to.
Definition Mailer.php:65
setMessage(string $message)
Setter de l'attribut message.
Definition Mailer.php:153
getTo()
Getter de l'attribut to.
Definition Mailer.php:56
const MAIL_USER
Nom d'utilisateur du compte du serveur mail.
Definition mail.php:31
const MAIL_PORT
Port du serveur mail.
Definition mail.php:21
const MAIL_BASE
Contenu à ajouter à la fin du sujet de mail.
Definition mail.php:46
const MAIL_FROM
Adresse email d'expédition des mails.
Definition mail.php:41
const MAIL_PASS
Mot de passe du compte du serveur mail.
Definition mail.php:36
const MAIL_HOST
Hôte du serveur mail.
Definition mail.php:16
const MAIL_SECURITY
Protocole de sécurité du serveur mail.
Definition mail.php:26