problème reception de mail en php

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

problème reception de mail en php

Message le Mar Sep 29, 2009 15:19

Bonjour,
Je suis en trein de construire un système d'alerte qui envois un mail sous format html...tout fonctionne sauf que sur htomail.com je reçois un mail vide. Sur gmail et voila, cela marche parfaitement. sauriez vous pourkoi ?
Merci
hanlin


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: problème reception de mail en php

Message le Mar Sep 29, 2009 15:22

On peut voir le code HTML du mail envoyé ?

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2686
Inscription: 13 Fév 2004

Re: problème reception de mail en php

Message le Mar Sep 29, 2009 19:35

J'irais même jusqu'à dire on pourrait avoir la totalité du "source" du mail avec les en-têtes et tout ça?

Il n'y a que du HTML, ou il y a du HTML et du texte en multipart/alternative? Il y a du texte ou que des images? S'il y a des images, elles sont incluses dans le mail (multipart/related) ou avec un src externe? Le mail a une signature DKIM? Il utilise du CSS? Si oui, interne ou externe?

Bienvenue dans le monde merveilleux du mail html...

Jacques.

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

Re: problème reception de mail en php

Message le Mar Sep 29, 2009 20:49

Salut,
j'utilise la fonction suivante pour envoyer mon mail :
Code: Tout sélectionner
function sendHTMLemail($HTML,$from,$to,$subject)
{
// First we have to build our email headers
// Set out "from" address

    $headers = "From: $from\r\n";

// Now we specify our MIME version

    $headers .= "MIME-Version: 1.0\r\n";

// Create a boundary so we know where to look for
// the start of the data

    $boundary = uniqid("HTMLEMAIL");
   
// First we be nice and send a non-html version of our email
   
    $headers .= "Content-Type: multipart/alternative;".
                "boundary = $boundary\r\n\r\n";

    $headers .= "This is a MIME encoded message.\r\n\r\n";

    $headers .= "--$boundary\r\n".
                "Content-Type: text/plain; charset=ISO-8859-1\r\n".
                "Content-Transfer-Encoding: base64\r\n\r\n";
               
    $headers .= chunk_split(base64_encode(strip_tags($HTML)));

// Now we attach the HTML version

    $headers .= "--$boundary\r\n".
                "Content-Type: text/html; charset=ISO-8859-1\r\n".
                "Content-Transfer-Encoding: base64\r\n\r\n";
               
    $headers .= chunk_split(base64_encode($HTML));

// And then send the email ....

    mail($to,$subject,"",$headers);
   
}




dans ma variable $HTML j'ai simplement un tableau qui fait ressortir un titre, une date et le nom d'une categorie de ma base de donnée.
un truc du genre

Code: Tout sélectionner
$HTML.= " <table width=\"100%\">
  <tr>
    <th><div align=\"left\" >when</div></th>
    <th><div align=\"left\" >title</div></th>

    <th><div align=\"left\" >location</div></th>
  </tr>
  <tr>
    <td colspan=\"4\"><hr align=\"center\" size=\"1\" /></td>
  </tr>
";while ($adslist=mysql_fetch_array($classifieds) ) {

$adurl="http://monsite.com/index.php?adid=".$adslist['id']."&catid=".$adslist['catid'];

$userprofile="http://monsite.com/index.php?userid=".$adslist['useridads'];

$HTML.="<tr><td>".$adslist['created']."</td>\n";

$HTML.="<td><a href=\"$adurl\"><h2>".strip_html_tags($adslist['headline'])."</h2></a> from <a href=\"$userprofile\">".$adslist['username']." </a></td>";

/*$message.="<td></td>";*/

//getting the location name

$town= str_replace (',','',$adslist['adcity']);

$location=mysql_query("select fieldtitle, fieldvalue from classify_field_values where fieldvalue='".$town."' ");


$myloc=mysql_fetch_array($location);
//end of query for location


$HTML.="<td>".$myloc['fieldtitle']." </td></tr>";


vttattitude
WRInaute discret
WRInaute discret
 
Messages: 74
Inscription: 13 Sep 2006

Re: problème reception de mail en php

Message le Mer Sep 30, 2009 15:51

Salut,

Je me suis récemment pris la tête sur le même problème que toi ;-) C'est décidemment pas simple d'envoyer des e-mails en HTML. Essaie de remplacer les "\r\n" pas des "\n", c'est une source d'incompatibilité.

Ensuite, j'ai aussi eu des soucis avec le format "multipart/alternative" et pour l'instant, je n'envoie le mail qu'en HTML, ça évite d'avoir à utiliser de "boundary" et ça simplifie pas mal les choses ... Je garde ce problème pour plus tard. Mais dans le code que tu as copié, il manque la fermuture de "boundary" en fin de message, non ?

Tiens nous au courant de tes tests.

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

Re: problème reception de mail en php

Message le Jeu Oct 01, 2009 13:42

J'ai laché l'affaire avec ce morceau de code...j'ai trouvé un petit script tres efficace qui a résolu mon problème...je remercie l'auteur d'ailleurs...http://classes.scriptsphp.org/example.mail.2#example


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: problème reception de mail en php

Message le Jeu Oct 01, 2009 14:07

Ou sinon il y a la rolls du genre : http://phpmailer.worxware.com/

hanlin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 300
Inscription: 23 Mar 2006

Re: problème reception de mail en php

Message le Jeu Oct 01, 2009 14:14

ouais je connais mais bon, pour ce que jue veux faire c pas une rolls c un rouleau compresseur :D

vttattitude
WRInaute discret
WRInaute discret
 
Messages: 74
Inscription: 13 Sep 2006

Re: problème reception de mail en php

Message le Jeu Oct 01, 2009 14:29

ça a déjà l'air sympa SimpleMail ... à tester !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité