Fonction mail php et template html
Résolu
Rom190686
Messages postés
436
Date d'inscription
Statut
Membre
Dernière intervention
-
Rom190686 Messages postés 436 Date d'inscription Statut Membre Dernière intervention -
Rom190686 Messages postés 436 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Dans le but de relancer mes clients automatiquement, j'ai développé un script d'envoi de mail auto.
Tout fonctionne parfaitement à l'exception de la personnalisation du mail. Je m'explique...
Dès lors que je souhaite ajouter une variable $nom ou $prenom dans mon mail pour le personnaliser, j'utilise include pour appeler mon template, et là, le corps de mon mail retourne "1"... Tout le texte à disparu.
Que faire ?
D'où vient ce problème ???
Dans le but de relancer mes clients automatiquement, j'ai développé un script d'envoi de mail auto.
Tout fonctionne parfaitement à l'exception de la personnalisation du mail. Je m'explique...
Dès lors que je souhaite ajouter une variable $nom ou $prenom dans mon mail pour le personnaliser, j'utilise include pour appeler mon template, et là, le corps de mon mail retourne "1"... Tout le texte à disparu.
Que faire ?
D'où vient ce problème ???
A voir également:
- Fonction mail php et template html
- Fonction si et - Guide
- Editeur html - Télécharger - HTML
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Créer une adresse mail hotmail - Guide
2 réponses
une classe qui contient la fonction mail, une page php pour executer le script et un fichier html qui contient le template : extrait
public function envoiEmail($destinataire, $sujet_mail) {
foreach ($destinataire as $value_destinataire) {
$destimail = $value_destinataire['email'];
$nom = $value_destinataire['lastname'];
$prenom = $value_destinataire['firstname'];
$ligne = "\n";
$msg_text = "message texte";
$msg_html = include('template_mail/mail.php');
etc......
OK.
Le soucis vient de include, voici un peu de lecture : https://www.php.net/manual/fr/function.include.php
Include ne renvoie pas le contenu de ton template dans la variable $msg_html, pour alimenter cette variable, il faut la placer dans ton template.
Le soucis vient de include, voici un peu de lecture : https://www.php.net/manual/fr/function.include.php
Include ne renvoie pas le contenu de ton template dans la variable $msg_html, pour alimenter cette variable, il faut la placer dans ton template.
variables, mais des "étiquettes", exemple:
"Bonjour Monsieur #NOM#,
Nous vous informons que le véhicule #IMMATRICULE# est dans nos locaux depuis #DATE#"
Ca c'est le contenu qui va dans $msg_html
ensuite, vous faites un str_replace, par exemple:
...et de même pour toutes les "étiquettes"
et vérifiez par:
Voici un search/replace:
Ici le $searchReplace est un tableau associatif. A vous de l'adapter avec des variables alimentées par votre base de données.
A+
"Bonjour Monsieur #NOM#,
Nous vous informons que le véhicule #IMMATRICULE# est dans nos locaux depuis #DATE#"
Ca c'est le contenu qui va dans $msg_html
ensuite, vous faites un str_replace, par exemple:
$msg_html = str_replace("#NOM#", "ALBERTINI", $msg_html);
...et de même pour toutes les "étiquettes"
et vérifiez par:
echo $msg_html; // mettre en commentaire si OK
Voici un search/replace:
$searchReplace = array( '#civilite#' => 'Mr', '#NOM#' => 'ALEXANDRIN', '#Prenom#' => 'Albert', '#Ad1#' => '98 rue Des Poêtes', '#cp#' => '92260', '#Ad2#' => null, '#ville#' => 'LA CELLE SAINT CLOUD', '#tel#' => '0143556677' ); $search = array_keys($searchReplace); $replace = array_values($searchReplace); $myFile = file_get_contents('template_mail/mail.php'); $msg_html str_replace($search, $replace, $myFile);
Ici le $searchReplace est un tableau associatif. A vous de l'adapter avec des variables alimentées par votre base de données.
A+