Php:insérer de l'html dans le corps d'1 email

Fermé
pingunette
Messages postés
10
Date d'inscription
jeudi 19 août 2004
Statut
Membre
Dernière intervention
26 août 2004
- 25 août 2004 à 11:54
Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
- 13 juil. 2011 à 14:32
Salut tout le monde,

Ti pb comme d'habitude lol, mais vraiment petit celui-là :

Voilà, j'envoie une newsletter (jusque là c'est nickel), elle est bien expédiée, bien reçue avec le texte formaté comme il faut, mais voilà j'aimerai savoir si on peut insérer du code html dedans afin d'y mettre des images ou autre.

Si c'est possible, y-a-t-il un code spécial à mettre ? et où ?

Merci d'avance ;o)

11 réponses

sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 649
25 août 2004 à 12:24
Hello.

Voir la RFC correspondante: http://ietf.org/rfc/rfc0822.txt

Tu as la possibilité de fournir (dans un même mail) 2 version du même message (l'un en texte seul et l'autre en HTML).

Je te retrouverai des exemples plus tard.
0
pingunette
Messages postés
10
Date d'inscription
jeudi 19 août 2004
Statut
Membre
Dernière intervention
26 août 2004

25 août 2004 à 12:29
oki merci à toi je vais voir ca. je cherchais justement à la base un tutorial mais je ne trouvais pas... ;o)
0
sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 649
25 août 2004 à 13:23
voir aussi tout ce qui est MIME:
http://www.imc.org/rfcs.html#mime
0
sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 649
25 août 2004 à 13:29
Sans rentrer trop dans les détails, voilà en gros comment ça se passe:

L'entête du mail contient:
MIME-Version: 1.0
Content-Type: multipart/alternative;boundary="----=_NextPart_000_001E_01C2925D.97B328B0"


(Le boundary étant une chaîne aléatoire de ton choix, mais qu'on ne doit pas retrouver dans le corps du message.)

Ensuite la partie texte sera:
------=_NextPart_000_001E_01C2925D.97B328B0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bonjour, blablabla...


(en adaptant bien sûr en fonction de ton charset et de l'encodage que tu utilises.)

Puis la partie HTML:
------=_NextPart_000_001E_01C2925D.97B328B0
Content-Type: text/html;charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>Bonjour, blablabla...

------=_NextPart_000_001E_01C2925D.97B328B0--




Le "boundary" sert à séparer les différentes parties.
(Le boundary est également utilisé pour les attachements)
0
pingunette
Messages postés
10
Date d'inscription
jeudi 19 août 2004
Statut
Membre
Dernière intervention
26 août 2004

25 août 2004 à 15:51
c bon l'email est bien mis en forme, mais crois-tu que je puisses insérer des images dans une "textarea" ?
0
sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 649 > pingunette
Messages postés
10
Date d'inscription
jeudi 19 août 2004
Statut
Membre
Dernière intervention
26 août 2004

25 août 2004 à 16:28
Il me semble qu'il faut que les images soient mis en attachement dans le mail.
0
pingunette
Messages postés
10
Date d'inscription
jeudi 19 août 2004
Statut
Membre
Dernière intervention
26 août 2004
> sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019

26 août 2004 à 10:42
ok. bon bah alors c'est pas ce que je veux... :o(. Merci quand même
0
pingunette
Messages postés
10
Date d'inscription
jeudi 19 août 2004
Statut
Membre
Dernière intervention
26 août 2004

25 août 2004 à 14:19
g oublié de préciser que le corps du message était stocké dans une variable lors de la validation du formulaire. je suis un peu paumée là avec tout ce code lol.

je vais essayer de ré-éxaminer tout ça ;o)
0
Bonjour,

J'ai utilisé un script d'envoi de mail en 2 versions (HTML et texte brut). Ca passe très bien sur mon client de messagerie (Outlook) mais pas du tout dans les webmails ! J'ai "This is a multi-part message in MIME format.", etc. Quelqu'un sait d'où peut provenir ce genre d'erreur ?

Je vous envoie la fonction que j'ai utilisée :

function mail_html($destinataire, $sujet , $messtxt, $messhtml , $from) { 
		$limite = "_parties_".md5 (uniqid (rand()));

		$entete = "Reply-to: $from\n";
		$entete .= "From:$from\n";
		$entete .= "Date: ".date("l j F Y, G:i")."\n";
		$entete .= "MIME-Version: 1.0\n";
		$entete .= "Content-Type: multipart/alternative;\n";
		$entete .= "\tboundary=\"----=$limite\"\n\n";

		//Le message en texte simple pour les navigateurs qui
		//n'acceptent pas le HTML
		$texte_simple = "This is a multi-part message in MIME format.\n";
		$texte_simple .= "Ceci est un message au format MIME.\n";
		$texte_simple .= "------=$limite\n";
		$texte_simple .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
		$texte_simple .= "Content-Transfer-Encoding: 7bit\n\n";
		$texte_simple .= $messtxt;
		$texte_simple .= "\n\n"; 

		//le message en html original
		$texte_html = "------=$limite\n";
		$texte_html .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
		$texte_html .= "Content-Transfer-Encoding: 7bit\n\n";
		$texte_html .= $messhtml;
		$texte_html .= "\n\n\n------=$limite\n";

		return mail($destinataire, $sujet, $texte_simple.$texte_html, $entete);
	}


Merci !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour à tous !

Je débute en Html, Php et cie.
J'aurais besoin d'un éclairement concernant le sujet ci-dessus.

[quote]MIME-Version: 1.0
Content-Type: multipart/alternative;boundary="----=_NextPart_000_001E_01C2925D.97B328B0"



(Le boundary étant une chaîne aléatoire de ton choix, mais qu'on ne doit pas retrouver dans le corps du message.)

Ensuite la partie texte sera:

------=_NextPart_000_001E_01C2925D.97B328B0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bonjour, blablabla...



(en adaptant bien sûr en fonction de ton charset et de l'encodage que tu utilises.) [/quote]

1) Question:

Ci-dessus le boundary est-il : ----=_NextPart_000_001E_01C2925D.97B328B0 ?
Ou es-ce seulement une partie de ce code ?

Si je remplace ----=_NextPart_000_001E_01C2925D.97B328B0 par newsletter00005 cela peut-il fonctionner ?
(J'ai bien noté que l'ont ne dois pas retrouver newsletter00005 dans le corps du message).

2) Question:

Qu'es ce que le charset ?


Je vais m'inscrire au forum, je vous remercit d'avance pour les informations, et les tutos présent sur ce site, très utile !
0
sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 649
11 mars 2008 à 22:22
1)
oui, tu peux le remplacer par la chaîne de ton choix.
Comme tu l'as compris, il est important que cette chaîne ne se retrouve pas dans le message.

2)
Ah !
Excellente et importante question.
Voici l'explication: https://sebsauvage.net/python/charsets_et_encoding.html
0
SéNéK
Messages postés
30
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
2 mars 2020

12 mars 2008 à 14:55
Je suis maintenant identifié.

Merci Seb pour ta réponse !

Par contre j'arrive toujours pas à faire fonctionner le code ci-dessous:

MIME-Version: 1.0
Content-Type: multipart/alternative;boundary="----=_NextPart_000_001E_01C2925D.97B328B0" [...]


Je me pose 2 questions:

1) cela fonctionne t'il bien depuis un webmailer (gmail, yahoo) ?

2) Ais-je bien integré le code ?

Donc j'intègre le code ci-après dans le corps d'un e-mail envoyé depuis ma boite gmail:

MIME-Version: 1.0
Content-Type: multipart/alternative;boundary="lesdimanchesmatinstest001xxxx"

newsletter00005
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bonjour,
Le collectif « Les dimanches matins » est composé de trois photographes, vidéastes et

graphistes.

Nous proposons deux prestations photographique et/ou vidéographique pour couvrir votre festival

:
1- réalisation d'un reportage photographique sur l'envers du décor (la préparation, les

coulisses, les bénévoles, les techniciens, le lieu)
2- prise de vue des spectacles. (les scènes, les groupes, le public)

Notre book photographique est disponible sur:
https://getniche.com/for-sale/skwat/



Nous restons à votre disposition pour une éventuelle collaboration.
Cordialement,

les dimanches matins
alimentation graphique générale

04 77 41 93 03


lesdimanchesmatinstest001xxxx
Content-Type: text/html;charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML>
<HEAD><A HREF="https://getniche.com/for-sale/skwat/"><IMG

SRC="http://www.skwat.com/up/images/1194266235-FLY-ELVIS-BICHE.jpg"></A>
</HEAD>

<BODY>
<P ALIGN="left">
Bonjour,<BR>
<BR>
Le collectif « Les dimanches matins » est composé de trois photographes, vidéastes et

graphistes.<BR>
<BR>
Nous proposons deux prestations photographique et/ou vidéographique pour couvrir votre festival

:<BR>
1- réalisation d'un reportage photographique sur l'envers du décor (la préparation, les

coulisses, les bénévoles, les techniciens, le lieu)<BR>
2- prise de vue des spectacles. (les scènes, les groupes, le public)<BR>

Notre book photographique est disponible ici: <A

HREF="https://getniche.com/for-sale/skwat/"><IMG SRC="http://a848.ac-

images.myspacecdn.com/images01/50/m_bd3dec3513602bb9047ce117f25739bf.gif"></A><BR>
<BR>
Nous restons à votre disposition pour une éventuelle collaboration.<BR>
Cordialement,<BR>
<BR>
les dimanches matins
alimentation graphique générale<BR>
04 77 41 93 03</P>
</BODY>
</HTML>
lesdimanchesmatinstest001xxxx


Qu'en pensez vous ?
NB: le code Html n'est pas encore sous sa forme définitve.
0
sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 649
12 mars 2008 à 15:19
Donc j'intègre le code ci-après dans le corps d'un e-mail envoyé depuis ma boite gmail:

Raté: tu ne peux pas bidouiller les entêtes des email dans les webmails: ils sont sous contrôle de leur serveur (pour des raisons de sécurité).
0
SéNéK
Messages postés
30
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
2 mars 2020

12 mars 2008 à 17:06
Okay !!

Donc je pouvais continuer à me casser la tête !
J'aurais donc du poser cette question en premier !

Merci encore Seb, et bonne journée.
0
sebsauvage
Messages postés
32844
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 649 > SéNéK
Messages postés
30
Date d'inscription
mercredi 17 janvier 2007
Statut
Membre
Dernière intervention
2 mars 2020

12 mars 2008 à 17:08
De rien.
0
sddQD
0
hugue1
Messages postés
2
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
6 novembre 2010

6 nov. 2010 à 16:44
un exemple


<html>
<body>
<?php

//----------------------------------
// Construction de l'entête
//----------------------------------
$delimiteur = "-----=".md5(uniqid(rand()));

$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-Type: multipart/related; boundary=\"$delimiteur\"\r\n";
$entete .= "\r\n";

//--------------------------------------------------
// Construction du message proprement dit
//--------------------------------------------------

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

//---------------------------------
// 1ère partie du message
// Le code HTML
//---------------------------------
$msg .= "--$delimiteur\r\n";
$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .= "<html><body><h1>Email HTML avec 2 images</h1>";
$msg .= "Image 1:<img src=\"cid:image1\"><br />";
$msg .= "<br /></body></html>\r\n";
$msg .= "\r\n";

//---------------------------------
// 2nde partie du message
// Le 1er fichier (inline)
//---------------------------------
$fichier = "/var/www/toto/images/logo.gif";
$fp = fopen($fichier, "rb");
$fichierattache = fread($fp, filesize($fichier));
fclose($fp);
$fichierattache = chunk_split(base64_encode($fichierattache));

$msg .= "--$delimiteur\r\n";
$msg .= "Content-Type: application/octet-stream; name=\"$fichier\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-ID: <image1>\r\n";
$msg .= "\r\n";
$msg .= $fichierattache . "\r\n";
$msg .= "\r\n\r\n";



$msg .= "--$delimiteur\r\n";

$destinataire = "exep@dom.com";
$expediteur = "truc@gmail.com";
$reponse = $expediteur;
echo "Ce script envoie un mail au format HTML avec images à $destinataire";
mail($destinataire,
"Titre du message a changer",
$msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$entete);
?>
</body>
</html>
0
Fallentree
Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
207
Modifié par Fallentree le 13/07/2011 à 15:02
Je veux bien mais hotmail n affichera pas le Gif
Comment faire ???
Ca commence à me faire bonbon cette histoire de gif a la gomme !!!!!

application/octet-stream ne suffit pas, image/jpeg ou image/gif convient
0
zakomtl
Messages postés
1
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
22 avril 2008

22 avril 2008 à 22:24
Bonjour.
voici mon script : il serts a envoyer un courriel a un ami avec les informations sur un emplois.

Le script va tres bien, mais...Mon problème c'est qu'il envoie seulement un courriel en texte, pas moyen de joindre des images qui me permettrais de personnalisé le courriel graphiquement.

Je suis un peu débutant, même si a force de vous lire on se perfectionne pas mal, je vous join le code de ma page PHP en espérant que quelqu'un peuve me dire comment transformer mon code pour reussir a envoyer mon texte agrémenté d'images .

Patrick alias zakomtl

//---------------------------
//Voici mon code
//-----------------------------

<?
require_once "../connect.php";
include_once "../main.php";
include_once "../configuration.inc.php";


if(isset($ok) && $ok == 'Send my application')
{
$q1 = "select CompanyEmailRH from job_employer_info where ename = \"$_POST[ename]\"";
$r1 = mysql_query($q1) or die(mysql_error());
$a1 = mysql_fetch_array($r1);

$url = "http://$myurl/employers/email-postulant.php?uname=$uname";

$q2 = "select * from job_resume where uname = \"$uname\" ";
$r2 = mysql_query($q2) or die(mysql_error());
$a2 = mysql_fetch_array($r2);

if(empty($a2[resume_title]))
{
echo "<br><br><br><center> You have not a resume yet. <br> Please, <a class=TN href=post-resume.php> build</a> one and then apply for the job.</center>";
exit;
}

$qui = "insert into job_aplicants set job_id = \"$_POST[job_id]\", aplicant = \"$uname\"";
$rui = mysql_query($qui) or die(mysql_error());

$from = "From: $a2[0] <$a2[1]>";
$subject = "New job applicant";
$message = "A job seeker has applyed for your job offer. <br> To review the applicant`s resume, visit this address:\n $url\n\n You can access this information from Employers menu/Manage Jobs and then click on the link \"view applicants list\" for each job offer.";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";

mail($a1[0], $subject, $message, $from);

echo "<br><br><br><center> Your aplication was sent to the employer.</center>";
}
elseif(isset($friend) && $friend == 'Send to a friend')
{
$url = "http://$myurl/jobseekers/jobseekers1.php?job_id=$_POST[job_id]";
?>
<table width='100%' border='0' cellspacing='1' cellpadding='5'>
<tr>
<td height='16' bgcolor='#FFCC00'><center>
<b><font color='#000000'>Send this Job to your friend.</font></b>
</center></td>
</tr>
</table><br><br>
<form action=send2.php method=post>
<table align=center>
<tr>
<td><b> Friend's email: </b></td>
<td><input type=text name=femail size=31></td>
</tr>

<tr>
<td valign=top><b>Message: </b></td>
<td><textarea rows=4 cols=26 name=fmessage>I found a great Job Offer at <?=$mydomain?>. Go to this URL to find out more. <?=$url?> </textarea></td>
</tr>

<tr>
<td colspan=2 align=center>
<input type=submit name=submit value=Send>
</td>
</tr>
</table>
</form>
<?
}
?>
<? include_once('../footer.php'); ?>
-1