rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[php] probleme de mail

Posté par youplaboum, le vendredi 1 juin 2007 à 17:33:26
Bonjour,

J'ai créé un formulaire pour mon site php et il envoie un email
à la personne qui c'est inscrite.

J'aimerais savoir si il est possible de mettre un lien qui ouvrirait
cette email (avec outlook je pense)
et comment mettre une image dans l'email.

Mon site n'est pas encore hebergé donc le lien
que j'ai est <img href="images/machin.jpg" >
mais çà m'afficher <img href="images/machin.jpg" >
dans l'email à la place de mon image.

si quelqu'un peut me venir en aide je le remercie.
Configuration: Windows NT 4.0
Internet Explorer 6.0
Répondre à youplaboum  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le vendredi 1 juin 2007 à 17:36:11
euhhhhhh un lien sur ton site qui ouvre le mail que le gars a reçu ça me parait chaud.....
Répondre à vdumontier

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
youplaboum, le vendredi 1 juin 2007 à 17:41:44
pourtant y'a bien des sites qui nous envoient
sur un email de confirmation quand on s'inscrit!!!!
mais c'est vrai que j'ai chercher sur le net et... rien
merci quand même.
si vous avez la réponse merci de m'aider
Répondre à youplaboum

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le vendredi 1 juin 2007 à 17:44:20
ben moi j'ai jamais vu ça
a la limite sur ta boite mail tu recoit un email avec un lien qui te renvoi sur leur site a une page de confirmation mais c'est tout...
Répondre à vdumontier

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
youplaboum, le vendredi 1 juin 2007 à 17:48:26
ah oui je crois que je me suis trompé :-[
désolé
mais pour l'image sinon?
Répondre à youplaboum

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
vdumontier, le vendredi 1 juin 2007 à 17:50:39
je sait que c'est possible mais je ne connais pas la sollution...
je suis désolé
a la limite essai d'éditer un mail outlook avec une image dedans
avec un etditeur de text si tu peux voir la source.

perso je n'utilise pas outlook donc...:s
Répondre à vdumontier

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Barracuda8, le vendredi 1 juin 2007 à 18:15:43
Salut,

Les envois de mails c'est toujours un peu énervant puisqu'il suffit de pas grand chose pour que ca ne marche pas.

Voici donc un script qui envoi un mail accompagné d'images, de tableau ... de html en fait!

!!Attention les images sont ici insérées au corps du mail et non en piece jointe!!

//j'ai un champs de type textarea avec du texte dedans (cela peu tres bien être du html avec des images et tous ce que html offre)
je le met dans deux variables différentes et j'enleve les slashs intempestifs du genre l/'a...

$msg_body = stripslashes($_POST['textarea1']);
$MesText = stripslashes($_POST['textarea1']);

//ici je retire toutes les balises html et je ne garde que les balises de type "<a>" pour les liens C'est utile pour au cas où le destinataire ne puisse pas lire le html dans sa messagerie (et oui ca arrive encore!)

$MesText=modif($MesText);//voir la fct en bas
$MesText = strip_tags($MesText,"<a></a>"); //on vire les balises...


//l'entete de mon mail
$Codage = "_NextPart_".md5(uniqid(rand()));

$Entete = "Reply-to: ".$Reply."\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 .= " boundary=\"----=".$Codage."\"\n\n";­

//--- Message au format Text
$Texte = "This is a multi-part message in MIME format.\n";
$Texte .= "Ceci est un message est au format MIME.\n";
$Texte .= "------=".$Codage."\n";
$Texte .= "Content-Type: text/plain; charset=\"UTF-8\"\n";
$Texte .= "Content-Transfer-Encoding: 8bit\n\n";
$Texte .= $MesText."\n\n";

//--- Message au format HTML
$HTML = "------=".$Codage."\n";
$HTML .= "Content-Type: text/html; charset=\"UFT-8\"\n";
$HTML .= "Content-Transfer-Encoding: 8bit\n\n";
$HTML .= $msg_body."\n\n\n------=".$Codage."\n";

//on utilise la fonction php mail
mail("Mondestinataire", "Mon objet", $Texte.$HTML, $Entete);

//$Texte.$HTML correspond à mon msg en que tel
//au cas ou le destinataire devrait recevoir mon msg au format text. on //va remplacer certaines balises pour garder les sauts de ligne et ne pas tout avoir en un bloc:

function modif($str_accent) {
$pattern = Array("/<br \/>/","/<\/p>/");
// notez bien les / avant et après les caractères
$rep_pat = Array("\n","\n");
$str_noacc = preg_replace($pattern, $rep_pat, $str_accent);
return $str_noacc;
}

//pour bien recevoir les images, faire attention à bien donner le chemin absolu de ces dernieres

PS: voici un lien ou tu pourras trouver des infos:
http://www.vulgarisation-informatique.com/mail.php

A+
Répondre à Barracuda8

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
youplaboum, le vendredi 1 juin 2007 à 18:21:30
merci beaucoup
je vais essayer çà.
Répondre à youplaboum

8


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Edouard, le vendredi 1 juin 2007 à 18:54:42
déjà pour faire référence à une image il faut un tage de ce type :
<img src="chemi/image.ext">
tu avais mit href, ça c'est pour le lien <a href="chemin/page.html">lien ou image</a>
Répondre à Edouard

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Edouard, le vendredi 1 juin 2007 à 19:02:11
Salut Barracuda8,

Je viens de lire ton post sans le tester, tu parles de textearea1, qui doit être dans le formulaire de la page précédente et passé en post si j'ai bien compris.

Quels sont les autres champs de ce formulaire (j'ai vu des variables non définies dans ce script comme $Reply et $from)?

Si tu as le code du formulaire ça lui fera (et moi aussi) bien gagner du temps...
Répondre à Edouard

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Barracuda8, le vendredi 1 juin 2007 à 19:17:19
bien vu!

Excusez moi, voici qques précisions:

- Il s'agit d'un formulaire assez simple, la chaine "textarea1" désigne le nom de mon textarea (celui ou j'entre le texte ou le code html qui sera envoyé). Ce champs textarea est en fait le résultat de l'éditeur de texte que j'utilise (tinyMCE) mais cela ne change en rien le code de l'envoi de mail, ca sert à generer automatiquement du html.

- La variable "$reply" donne une valeur à REPLY-TO

# Reply-To : cet en-tête permet de spécifier l'adresse email de réponse (qd on répond à un mail).
On l'utilise comme ceci : Reply-To: adresse_mail

- La variable "from" donne une valeur à FROM

# From : cet en-tête permet de spécifier l'adresse email de l'expéditeur. On peut mettre tout et n'importe quoi comme adresse mail, et donc vous comprennez maintenant pourquoi vous recevez des emails de bill gates en personne (sic) et autres débilités (SPAM).
On l'utilise comme ceci : From: "Nom de l'expéditeur" <adresse mail de l'expéditeur>

Voilà, si il y a d'autres questions, n'hésitez pas!

A+

PS: je ne peux pas te donner le code du formulaire en question mais il s'agit d'un formulaire assez classique dans la forme. Ce qui est important c'est de bien récuperer les valeurs du formulaire et donner les variables de la fonction mail.
Répondre à Barracuda8

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
youplaboum, le lundi 4 juin 2007 à 10:25:04
merci je n'avais pas penser a mettre du html mais j'ai du mal expliquer mon problème.
en fait l'adresse de mon image c'est
<img src="images\youplaboum.jpg">
mais ce n'est pas çà que je dois mettre.
Cà me met le carré vide avec la X rouge.
et je ne sais ce que je dois mettre justement.
pareil pour la feuille de style.

help please
Répondre à youplaboum

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Edouard, le lundi 4 juin 2007 à 10:40:35
Salut,

C'est une simple question de logique et de lien absolu/relatif...

Quand tu envoies un email avec une image dans le corps du message, ce mail va soit s'afficher dans son webmail (hotmail...) soit dans une messagerie (Outlook,...)

Dans le premier cas ton image ne va pas s'afficher car il n'y a pas de dossier images contenant youplaboum.jpg SUR le serveur de webmail ;

Dans le second idem il n'y a pas un tel dossier avec youplaboum.jpg SUR le disque dur de ton destinataire.

Si tu veux être sûr que l'image s'affiche tu dois utiliser une source de ce type :
<img src="http://www.monsite.com/images/youplaboum.jpg"­ alt="texte de remplacement si son client de messagerie n'affiche pas les images par defaut">
Répondre à Edouard

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 youplaboum, le lundi 4 juin 2007 à 10:53:31
merci c'est ce bien ce que je pensais mais comme je l'ai dit au début,
mon site n'est pas encore hebergé.
sinon j'ai trouver çà.

<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 .= "Image 2:<img src=\"cid:image2\"><br /></body></html>\r\n";
$msg .= "\r\n";

//---------------------------------
// 2nde partie du message
// Le 1er fichier (inline)
//---------------------------------
$fichier = "monfichier.jpg";
$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";

//---------------------------------
// 3ème partie du message
// Le 2ème fichier (attachment)
//---------------------------------
$fichier = "monfichier2.jpg";
$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: <image2>\r\n";
$msg .= "\r\n";
$msg .= $fichierattache . "\r\n";
$msg .= "\r\n\r\n";

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

$destinataire = "testemail@toutestfacile.com";
$expediteur   = "moi@monsite.com";
$reponse      = $expediteur;
echo "Ce script envoie un mail au format HTML avec 2 images à $destinataire";
mail($destinataire,
     "Email HTML avec 2 images",
     $msg,
     "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$entete);
?>
</body>
</html> 


mais juste pour une image je trouve çà plutôt enorme.
Répondre à youplaboum
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger Windows Live Mail 12.0.1606.1023Windows Live Mail - Windows Live Mail est une application bureautique qui permet d'accéder à plusieurs comptes de messagerie à partir d'un seul...Catégorie: Courrier électronique
Licence: Freeware/gratuit
Télécharger MailWasher 6.1.1.18MailWasher - MailWasher est un outil antispam performant agissant en amont de la récupération de votre courrier. Il bloque les courriers...Catégorie: Antispam
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « PHP mail »