Envoi d'un mail html en php

Fermé
ifoks - 8 janv. 2010 à 13:19
 wallo_gt - 23 janv. 2010 à 02:57
Bonjour,

J'ai un soucis je voudrais envoyé des pages html (avec images et CSS) via la fonction mail() en php. Voici mon code :

$destinatairee = "monadresse@hotmail.fr";

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $destintairee))
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}

$messagee = '<html><head></head><body><p>Bienvenue sur Ohmycap.com</p></body></html>';

$sujett = "Bienvenue sur Ohmycap" ;

$header = 'From: "Ohmycap" <contact@ohmycap.com>'.$passage_ligne;
$header .= 'Reply-to: "Ohmycap" <contact@ohmycap.com>'.$passage_ligne;
$header .= 'MIME-Version: 1.0' .$passage_ligne;
$header .= 'Content-type: text/html; charset="utf-8"'.$passage_ligne;
$headers .='Content-Transfer-Encoding: 8bit';


mail ($destinatairee, $sujett, $messagee, $header);



Mais y a un gros soucis, le mail part correctement, le titre s'affiche correctement mais pour le corps du message c'est pas du tout ça, voila se qui s'affiche :


Content-type: text/html; charset="utf-8"

Message-Id: <20100108121403.AB72D31F85@60gp.ovh.net>
Date: Fri, 8 Jan 2010 13:14:03 +0100 (CET)
X-Ovh-Tracer-Id: 2416462676020739816
Return-Path: bounce-id=D008=U137667.60gp.ovh.net=1262952841347146461@50.mail-out.ovh.net
X-OriginalArrivalTime: 08 Jan 2010 12:14:05.0320 (UTC) FILETIME=[1260B880:01CA905C]


<html><head></head><body><p>Bienvenue sur Ohmycap.com.</p></body></html>


Je développe sur mac et je suis désespéré aidez moi svp !
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 janv. 2010 à 13:36
une erreur déjà:

$header = 'From: "Ohmycap" <contact@ohmycap.com>'.$passage_ligne;
$header .= 'Reply-to: "Ohmycap" <contact@ohmycap.com>'.$passage_ligne;
$header .= 'MIME-Version: 1.0' .$passage_ligne;
$header .= 'Content-type: text/html; charset="utf-8"'.$passage_ligne;
$headers .='Content-Transfer-Encoding: 8bit';


le dernier $header est avec un s à la fin ?
comme il est concaténé ça doit générer une erreur qui perturbe l'exécution du php je pense
0
J'ai rectifié l'erreur mais rien ne change. J'ai posté le code sur une page html classique avec une entête (meta etc...). J'ai regardé beaucoup de tuto mais aucun d'eux ne fonctionnent je n'arrive pas à envoyer du html dans mes mail et je ne comprend pas.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 janv. 2010 à 14:16
remplaces:

if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $destintairee))
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}


par
$passage_ligne = "\r\n";


je pense que la différence de passage à la ligne est différente selon l'hebergeur et pas le destinataire
0
De plus, les mails peuvent très bien être rappatriés dans une messagerie locale (Outlook, Thunderbird..)

Ceci étant, je suis confronté au même problème.
Impossible de trouver un vrai tuto qui permette d'envoyer convenablement un mail au format html en php!
C'est dingue
0