8791 sujets

Développement web côté serveur, CMS

Bonsoir à tous,

J'ai une page qui m'envoie les mail à double contenu, un contenu html, et un contenu texte.

Le problème, c'est qu'une fois envoyé, le message est invisible, et pourtant, si je vais dans la source du mail, je n'ai aucun problème, tout y est.

Voici le script qui envoie le mail :

<?php
$destinataire_admin = '***';

$email_expediteur = $membre_mail[0];
$email_reply = $membre_mail[0];

$frontiere = '----=' . md5(uniqid(mt_rand()));

$headers_admin = 'From: "'.$membre_mail[1].'" <'.$email_expediteur.'>'."\n";
$headers_admin .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers_admin .= 'Cc: '.$email_cc.''."\n";
$headers_admin .= 'X-Priority: 3'."\n";
$headers_admin .= 'MIME-Version: 1.0'."\n";
$headers_admin .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';

$message_admin = 'This is a multi-part message in MIME format.'."\n\n";
$message_admin .= '--'.$frontiere.'--'."\n";
$message_admin .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message_admin .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message_admin .= $message_texte_admin."\n\n";
$message_admin .= '--'.$frontiere.'--'."\n";
$message_admin .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message_admin .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message_admin .= $message_html_admin."\n\n";
$message_admin .= '--'.$frontiere.'--'."\n";

$destinataire= $membre_mail[0];


$email_expediteur='***';
$email_reply='***';

$headers = 'From: "L\'équipe France" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'X-Priority: 3'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';


$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";
$message .= '--'.$frontiere.'--'."\n";

		mail($destinataire_admin,$sujet,$message_admin,$headers_admin);
		mail($destinataire,$sujet,$message,$headers);
		
	?>


Et voici la source d'un message que je reçois (je le vois vide sur Outlook, mais très bien sous Gmail) :

To: ***@***
Subject: Soumission d'une nouvelle page
From: "L'équipe France" <****@***>
X-Priority: 3
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=0b8eac96a584bddaff6f381889e420eb"
Message-Id: <E1I7L19-0004eP-00@****>
X-Provags-ID: **** sender-info:147372427***

This is a multi-part message in MIME format.

------=0b8eac96a584bddaff6f381889e420eb--
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

Bonjour Super_baloo8,

Vous avez soumis une nouvelle page sur le site de l'équipe France.

Voici les données de votre nouvelle page :

Titre : WCG fonctionne t-il uniquement lorsque le PC est en veille ?

Contenu : 



Non, il ne faut pas que l'ordinateur soit en veille pour que l'application tourne.


En réalité, à partir du moment que vous allumez votre ordinateur et que l'agent UD est démarré (en installation par défaut, l'application se lance au démarrage de votre ordinateur), l'application travaille.


Elle prend les ressources inutilisées de votre ordinateur à raison par défaut de 60% de la puissance CPU.


C'est à dire que si vous ne faites rien avec votre PC, elle prend tout ce dont elle a besoin.


Si vous travaillez avec un ou plusieurs programmes en même temps qui nécessitent beaucoup de ressources, l'agent UD libère les ressources nécessaires et ne prend que les miettes.

Un conseil

En s'installant, l'agent UD vous change votre écran de veille par le sien.

Son écran de veille est très joli, et vous montre ce qui est en cours de calcul, par contre pour vous montrer ces jolis graphiques, il doit utiliser des ressources qui ne peuvent plus être utilisées pour le calcul, et donc le calcul ne peut pas être effectué le plus rapidement possible.

Nous vous recommendons donc de désactiver votre ecran de veille, et en contre partie d'éteindre votre écran dès que vous vous absentez.


Vous ne comprenez pas tout ? Exprimez vous sur notre forum.




Vous recevrez un courriel vous avertissant de la publication de votre actualité.

------=0b8eac96a584bddaff6f381889e420eb--
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

<html><head><title>Titre</title></head><body><p style="text-align: center;">Bonjour <strong>Super_baloo8</strong>,</p>

<p>Vous avez soumis une nouvelle page sur <a href="****">le site de l'équipe France</a>.</p>

<p>Voici les données de votre nouvelle page :</p>

<p><strong>Titre :</strong> WCG fonctionne t-il uniquement lorsque le PC est en veille ?</p>

<p><strong>Contenu :</strong></p>


<p>
Non, il ne faut pas que l'ordinateur soit en veille pour que l'application tourne.
</p>
<p>
En réalité, à partir du moment que vous allumez votre ordinateur et que l'agent UD est démarré (en installation par défaut, l'application se lance au démarrage de votre ordinateur), l'application travaille.
</p>
<p>
Elle prend les ressources inutilisées de votre ordinateur à raison par défaut de 60% de la puissance CPU.
</p>
<p>
C'est à dire que si vous ne faites rien avec votre PC, elle prend tout ce dont elle a besoin.
</p>
<p>
Si vous travaillez avec un ou plusieurs programmes en même temps qui nécessitent beaucoup de ressources, l'agent UD libère les ressources nécessaires et ne prend que les miettes.
</p>
<h2>Un conseil</h2>
<p>
En s'installant, l'agent UD vous change votre écran de veille par le sien.
<br />
Son écran de veille est très joli, et vous montre ce qui est en cours de calcul, par contre pour vous montrer ces jolis graphiques, il doit utiliser des ressources qui ne peuvent plus être utilisées pour le calcul, et donc le calcul ne peut pas être effectué le plus rapidement possible.
<br />
Nous vous recommendons donc de désactiver votre ecran de veille, et en contre partie d'éteindre votre écran dès que vous vous absentez.
</p>
<p>
Vous ne comprenez pas tout ? <a href="****" title="Entraide sur ce sujet dans le forum du site">Exprimez vous sur notre forum</a>.
</p>



<p>Vous recevrez un courriel vous avertissant de la publication de votre nouvelle page.</p></body></html>

------=0b8eac96a584bddaff6f381889e420eb--


Si vous arrivez à trouver ce qui cloche, chapeau !

P.S. : J'ai essayer de supprimer le boundary en fin de message, même résultat, j'ai essayer d'enlever un tiret côté gauche du boundary, pareil.
Je pense que cela viens des bundary, mais je n'ai rien trouvé sur le net ...
Modifié par Super_baloo8 (08 Jul 2007 - 11:58)
Bonjour,

Si boundary="texte_séparateur" alors dans le corps du message il faut:

--texte_séparateur

Seulement 2 tirets avant.

Voir : rfc1341

Alain.

Edit-PS :
et :
--texte_séparateur--
en fin de message (ce qui suivra sera ignoré)
Modifié par mcAllan (08 Jul 2007 - 10:54)
Merci Beaucoup McAllan, ça fonctionne parfaitement maintenant.

Il va falloir que je me mette un coup de pied au fesse pour lire la doc anglaise (je sais le lire et le parler, mais je préfère vraiment le français).

Allez un coup de fouet ! Smiley sm Smiley flackwhore