blob: c1f74d16fed17523129b5407d56a384b85e40032 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<?php
// src/EmailService.php
declare(strict_types=1);
use PHPMailer\PHPMailer\PHPMailer;
//use PHPMailer\PHPMailer\Exception;
use App\Entity\Email;
use Doctrine\ORM\EntityManager;
class EmailService
{
static public function send(EntityManager $entityManager, string $recipient, bool $true_email, string $name = '', string $email = '', string $message = ''): bool
{
$mail = new PHPMailer(true); // true => exceptions
$mail->CharSet = 'UTF-8';
try{
// Paramètres du serveur
$mail->isSMTP();
$mail->Host = Config::$smtp_host;
$mail->SMTPAuth = true;
$mail->Port = 25;
if($mail->SMTPAuth){
$mail->Username = Config::$smtp_username; // e-mail
$mail->Password = Config::$smtp_password;
$mail->SMTPSecure = Config::$smtp_secure; // tls (starttls) ou ssl (smtps)
if($mail->SMTPSecure === 'tls'){
$mail->Port = 587;
}
elseif($mail->SMTPSecure === 'ssl'){
$mail->Port = 465;
}
}
//var_dump($mail->smtpConnect());die; // test de connexion
// Expéditeur et destinataire
$mail->setFrom(strtolower(Config::$email_from), Config::$email_from_name); // expéditeur
$mail->addAddress(strtolower($recipient), Config::$email_dest_name); // destinataire
// Contenu
$mail->isHTML(true);
if($true_email){
$mail->Subject = 'Message envoyé par: ' . $name . ' (' . $email . ') depuis le site web';
}
else{
$mail->Subject = "TEST d'un envoi d'e-mail depuis le site web";
}
$mail->Body = $message;
$mail->AltBody = $message;
$mail->send();
// copie en BDD
$db_email = new Email($email, Config::$email_dest, $message);
$entityManager->persist($db_email);
$entityManager->flush();
return true;
}
catch(Exception $e){
return false;
//echo "Le message n'a pas pu être envoyé. Erreur : {$mail->ErrorInfo}";
}
}
}
|