Envoyer un mail préformarter depuis son site web.
Résolu
Zick__barrimor
Messages postés
62
Date d'inscription
Statut
Membre
Dernière intervention
-
Zick__barrimor Messages postés 62 Date d'inscription Statut Membre Dernière intervention -
Zick__barrimor Messages postés 62 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Tout d'abord je tiens à préciser qu'avant de m'en aller sur des forums j'ai labouré durant de longues heures mon code, retravaillé et re-retravaillé sans succès et que je me suis déjà renseigné sur le Web (je suis pas en train de dire que j'ai fais une recherche google mais des milliards) et que rien n'a résolu mon problème jusque là.
Alors voila mon soucis:
Pour mon site web, j'ai créé mon propre formulaire de contact dont je me suis appuyé d'un tuto de siteduzero car je ne maitrisais pas trop les formulaires. Enfin là n'est pas le problème. Là ou ça bloque, c'est lorsque j'essaye de m'envoyer par mail ce que l'utilisateur à saisis.
dans l'ideal, j'aurais voulu avoir un mail de la forme
$Objet
$mon header perso
$Nom
$Mail
$Tel
$Message
le soucis c'est que pour le moment les seules fois ou j'ai réussi, soit le mail s'affichait sans les sauts de lignes, soit encodé très mal, soit il ne s'envoyait pas, soit il m'affichait juste le $Message...
Si quelqu'un pourrait me donner la soluce ce ne serait pas de refus !
En sachant que si je peux privilégier les <br /> pour faire les sauts dans le mail ça m'arrange...
Tout d'abord je tiens à préciser qu'avant de m'en aller sur des forums j'ai labouré durant de longues heures mon code, retravaillé et re-retravaillé sans succès et que je me suis déjà renseigné sur le Web (je suis pas en train de dire que j'ai fais une recherche google mais des milliards) et que rien n'a résolu mon problème jusque là.
Alors voila mon soucis:
Pour mon site web, j'ai créé mon propre formulaire de contact dont je me suis appuyé d'un tuto de siteduzero car je ne maitrisais pas trop les formulaires. Enfin là n'est pas le problème. Là ou ça bloque, c'est lorsque j'essaye de m'envoyer par mail ce que l'utilisateur à saisis.
dans l'ideal, j'aurais voulu avoir un mail de la forme
$Objet
$mon header perso
$Nom
$Tel
$Message
le soucis c'est que pour le moment les seules fois ou j'ai réussi, soit le mail s'affichait sans les sauts de lignes, soit encodé très mal, soit il ne s'envoyait pas, soit il m'affichait juste le $Message...
Si quelqu'un pourrait me donner la soluce ce ne serait pas de refus !
En sachant que si je peux privilégier les <br /> pour faire les sauts dans le mail ça m'arrange...
1 réponse
-
Bonjour,
Concernant la plupart de vos problème le soucis vient du formatage de votre message.
Serait-il possible d'avoir la partie du code concerné sur l'envoi du mail?
sinon renseigne toi sur la doc de php ici :
https://www.php.net/manual/fr/function.mail.php-
Pour être honnête c'est un peu le bordel dans mon code.. mais si t'insiste x)
https://hastebin.com/ahekironeg.xml
C'est bien moi qui ai obfusqué les mails pour éviter de me faire spam par des trolls ^^ je te rassure.
Merci! -
Déjà il y a un soucis dans ton code .
$msg = "Content-Type: text/html; charset=\"28591\""."\n";
// $msg.= "Content-Transfer-Encoding: 8bit"."\n";
$msg.= $br.$message2.$br;
//==========
//=====Empêcher les requêtes HTML
$nom2 = strip_tags($_POST['nom']);
$email2 = strip_tags($_POST['email']);
$tel2 = strip_tags($_POST['tel']);
$objet2 = strip_tags($_POST['objet']);
$message2 = $nom2.$br.$email2.$br.$tel2.$br.$br.$br;
$message2.= strip_tags($_POST['message']);
Tu assigne Message2 a msg... mais message2 n'a aucune valeur au moment ou tu essais de le rentrer... ce qui fait que ta variable msg ressemble a :
$br$br après son assignation. -
De plus vous vous embêtez a un moment :/
$destinataire = '*****';
$expediteur = $email2;
Puis :mail($destinataire,$object,$msg,$header);
mail($expediteur,$object,$msg,$header);
Les serveurs de mail fonctionne tous C'est a dire que pour envoyé un mail a plusieur personne vous pouvez séparer les adresses mail par un point virgule
$destinataire = '*****;';
$destinataire .= $email2;
Et ainsi virer une ligne d'utilisation de la fonction mail.
Cette dernière renvoi un booléen pour vérifier si l'envoi passe ou pas. L'utilisation d'un try catch est donc préférable afin de voir si tout fonctionne:Try{
mail($destinataire,$object,$msg,$header);
}
catch(Exception e){
echo Erreur:".e->getMessage();
} -
-
-