Fonction mail php et template html
Résolu
Rom190686
Messages postés
469
Statut
Membre
-
Rom190686 Messages postés 469 Statut Membre -
Rom190686 Messages postés 469 Statut Membre -
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
- Windows live mail - Télécharger - Mail
- Editeur html - Télécharger - HTML
- Publipostage mail - Accueil - Word
- Comment télécharger un mail - 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+