1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-06-25 18:17:28 +02:00

Optimisation de l'envoi de mails

This commit is contained in:
Yohann
2019-09-08 12:45:48 +02:00
committed by galaxyoyo
parent bd73e82cb0
commit 5771a15a32
16 changed files with 241 additions and 116 deletions

View File

@ -1,81 +1,130 @@
<?php
function sendMail($email, $subject, $content, $from = "contact")
class Mailer
{
global $MAIL_DOMAIN, $URL_BASE, $YEAR;
private static function sendMail($email, $subject, $content, $from = "contact")
{
global $MAIL_DOMAIN, $URL_BASE, $YEAR;
$content = preg_replace("#{URL_BASE}#", $URL_BASE, $content);
$content = preg_replace("#{YEAR}#", $YEAR, $content);
$content = preg_replace("#{URL_BASE}#", $URL_BASE, $content);
$content = preg_replace("#{YEAR}#", $YEAR, $content);
$headers = "From: " . $from . "@" . $MAIL_DOMAIN . "\r\n";
$headers .= "Reply-To: contact@" . $MAIL_DOMAIN . "\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers = "From: " . $from . "@" . $MAIL_DOMAIN . "\r\n";
$headers .= "Reply-To: contact@" . $MAIL_DOMAIN . "\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
mail($email, $subject, $content, $headers);
}
/**
* @param NewUser
*/
function sendRegisterMail($new_user)
{
global $LOCAL_PATH, $YEAR;
$content = file_get_contents("$LOCAL_PATH/server_files/services/mail_templates/register.html");
$content = preg_replace("#{FIRST_NAME}#", $new_user->first_name, $content);
$content = preg_replace("#{SURNAME}#", $new_user->surname, $content);
$content = preg_replace("#{TOKEN}#", $new_user->confirm_email_token, $content);
sendMail($new_user->email, "Inscription au TFJM² $YEAR", $content);
}
/**
* @param $user User
* @param $team Team
* @param $tournament Tournament
*/
function sendAddTeamMail($user, $team, $tournament)
{
global $LOCAL_PATH, $YEAR;
$content = file_get_contents("$LOCAL_PATH/server_files/services/mail_templates/add_team.html");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
$content = preg_replace("#{ACCESS_CODE}#", $team->getAccessCode(), $content);
sendMail($user->getEmail(), "Ajout d'une équipe TFJM² $YEAR", $content);
}
/**
* @param NewUser
*/
function sendAddOrganizerMail($new_orga)
{
global $LOCAL_PATH, $YEAR;
$content = file_get_contents("$LOCAL_PATH/server_files/services/mail_templates/add_organizer.html");
$content = preg_replace("#{FIRST_NAME}#", $new_orga->first_name, $content);
$content = preg_replace("#{SURNAME}#", $new_orga->surname, $content);
$content = preg_replace("#{PASSWORD}#", $new_orga->password, $content);
sendMail($new_orga->email, "Ajout d'un organisateur -- TFJM² $YEAR", $content);
}
/**
* @param $organizer User
* @param $tournament Tournament
*/
function sendAddOrganizerForTournamentMail($organizer, $tournament)
{
global $LOCAL_PATH, $YEAR;
$content = file_get_contents("$LOCAL_PATH/server_files/services/mail_templates/add_organizer_for_tournament.html");
$content = preg_replace("#{FIRST_NAME}#", $organizer->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $organizer->getSurname(), $content);
$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
sendMail($organizer->getEmail(), "Ajout d'un organisateur pour le tournoi " . $tournament->getName() . "-- TFJM² $YEAR", $content);
mail($email, $subject, $content, $headers);
}
private static function getTemplate($name)
{
global $LOCAL_PATH;
return file_get_contents("$LOCAL_PATH/server_files/services/mail_templates/$name.html");
}
public static function sendRegisterMail(NewUser $new_user)
{
global $YEAR;
$content = self::getTemplate("register");
$content = preg_replace("#{FIRST_NAME}#", $new_user->first_name, $content);
$content = preg_replace("#{SURNAME}#", $new_user->surname, $content);
$content = preg_replace("#{TOKEN}#", $new_user->confirm_email_token, $content);
self::sendMail($new_user->email, "Inscription au TFJM² $YEAR", $content);
}
public static function sendConfirmEmail(User $user)
{
global $YEAR;
$content = self::getTemplate("register");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TOKEN}#", $user->getConfirmEmailToken(), $content);
self::sendMail($user->getEmail(), "Confirmation d'adresse e-mail TFJM² $YEAR", $content);
}
public static function sendChangeEmailAddressMail(User $user)
{
$content = self::getTemplate("change_email_address");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TOKEN}#", $user->getConfirmEmailToken(), $content);
self::sendMail($user->getEmail(), "Changement d'adresse e-mail TFJM²", $content);
}
public static function sendForgottenPasswordProcedureMail(User $user)
{
$content = self::getTemplate("forgotten_password");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TOKEN}#", $user->getForgottenPasswordToken(), $content);
self::sendMail($user->getEmail(), "Mot de passe oublié TFJM²", $content);
}
public static function sendChangePasswordMail(User $user)
{
$content = self::getTemplate("change_password");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
self::sendMail($user->getEmail(), "Mot de passe changé TFJM²", $content);
}
public static function sendAddTeamMail(User $user, Team $team, Tournament $tournament)
{
global $YEAR;
$content = self::getTemplate("add_team");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
$content = preg_replace("#{ACCESS_CODE}#", $team->getAccessCode(), $content);
self::sendMail($user->getEmail(), "Ajout d'une équipe TFJM² $YEAR", $content);
}
public static function sendJoinTeamMail(User $user, Team $team, Tournament $tournament)
{
global $YEAR;
$content = self::getTemplate("join_team");
$content = preg_replace("#{FIRST_NAME}#", $user->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $user->getSurname(), $content);
$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
self::sendMail($user->getEmail(), "Équipe rejointe TFJM² $YEAR", $content);
}
public static function sendAddOrganizerMail(NewOrganizer $new_orga)
{
global $YEAR;
$content = self::getTemplate("add_organizer");
$content = preg_replace("#{FIRST_NAME}#", $new_orga->first_name, $content);
$content = preg_replace("#{SURNAME}#", $new_orga->surname, $content);
$content = preg_replace("#{PASSWORD}#", $new_orga->password, $content);
self::sendMail($new_orga->email, "Ajout d'un organisateur TFJM² $YEAR", $content);
}
public static function sendAddOrganizerForTournamentMail(User $organizer, Tournament $tournament)
{
global $YEAR;
$content = self::getTemplate("add_organizer_for_tournament");
$content = preg_replace("#{FIRST_NAME}#", $organizer->getFirstName(), $content);
$content = preg_replace("#{SURNAME}#", $organizer->getSurname(), $content);
$content = preg_replace("#{TOURNAMENT_NAME}#", $tournament->getName(), $content);
self::sendMail($organizer->getEmail(), "Ajout d'un organisateur pour le tournoi " . $tournament->getName() . " TFJM² $YEAR", $content);
}
}