Bonjour,

Voila je rencontre un petit problème avec mon code.
Je suis le tuto sur la realisation d'un espace membre. Je suis maintenant bloqué sur une part ou il faut envoyé un mail a l'utilisateur.
Dans le tuto, le code utilisé est pareil a celui ci:

if(!empty($user)){
            mail($user->UserEmail, 'Réinitiatilisation de votre mot de passe', "Afin de réinitialiser votre mot de passe merci de cliquer sur ce lien\n\nhttp://localhost/africafashion_newversion/reset.php?id={$user->UserID}&token=$password_reset_token");

            header('Location: login.php');

            exit();

        } else {
            $_SESSION['flash']['danger'] = 'Aucun compte n\'a été trouvé';
        }

Quand j'utilise le code ci dessus, le mail semble être envoyé mais une fois je consulte ma boite de reception, je ne vois rien.
Cela est dû au code header('Location: login.php'); juste apres la fonction mail(). Quand je supprime header('Location: login.php');, tout se passe bien.

Pour resoudre le problème, j'ai donc decidé d'utiliser le code suivant, qui fonctionne parfaitement:

if(!empty($user)){
            if(mail($user->UserEmail, 'Réinitiatilisation de votre mot de passe', "Afin de réinitialiser votre mot de passe merci de cliquer sur ce lien\n\nhttp://localhost/africafashion_newversion/reset.php?id={$user->UserID}&token=$password_reset_token")){

                $_SESSION['flash']['success'] = 'Les instructions du rappel de mot de passe vous ont été envoyées par emails';

                header('Location: login.php');
            } else{

                $_SESSION['flash']['danger'] = "L'email n'a pas été envoyé, veuillez reessayer";

            }

        } else {
            $_SESSION['flash']['danger'] = 'Aucun compte n\'a été trouvé';
        }

En ce moment je travaille avec WAMP et j'utilise sendmail pour l'envoi de mail.
La question qui m'emmene ici est la suivante: Est une bonne pratique de mettre la fonction mail() dans une condition if?
Est ce bonne pratique quand je serai plus en local?

Merci de bien vouloir me rendre les idées claires

1 réponse


Salut,

Perso, pour l'envoi de mail je te conseil http://swiftmailer.org/ qui est plus modulable et gère plus de chose et surtout les DKIM pour éviter de passer en SPAM.
Ainsi le jour où tu voudras joindre un fichier ou faire des choses plus complexe avec, tu ne seras pas obligé de tout redévelopper.

C'est pas la meilleur classe pour simplifier l'utilisation de Swiftmailer mais ça peut t'aider : https://github.com/babeuloula/SlimBootstrap/blob/master/core/Mail.php