Envoyer EMAIL EN PHP

Fermé
Lrt88 Messages postés 930 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 12 août 2018 - 23 mars 2009 à 22:28
Lrt88 Messages postés 930 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 12 août 2018 - 26 mars 2009 à 14:22
Bonsoir,

est-ce que quelqu'un aurait un code pour envoyer des emails en php ?
Ma seule demande particulière, c'est que je dois pouvoir rajouter des images dans le mail (une image en bannière).

J'ai essayé un code qui marche mais dès que je mets une image, il ne marche pas (string unexpected)

Grand merci à tous

ps: si quelqu'un a une autre solution que php qu'il me le dise ! merci bien
A voir également:

6 réponses

les images tu peux les intégrer en mettant <img src=3D"http://ton domaine/le chemin vers l'image" />
0
Lrt88 Messages postés 930 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 12 août 2018 267
23 mars 2009 à 22:46
merci d'essayer de m'aider
jai essayé avec le 3D mais ca ne marche pas
Voila mon code au cas où ca peut t'aider

<?php
/** CONFIGURATION **/
$de_nom = "Phil"; //Nom de l'envoyeur
$de_mail = "lolo@fucam.ac"; //Email de l'envoyeur
$vers_nom = "Laurent"; //Nom du receveur
$vers_mail = "ginger76@hotmail.com"; //Email du receveur
$sujet = "Un email de test !"; //Sujet du mail

//Message :
$message = "<img src=3D"https://www.labonnebouffe.be" />";

/** Envoi du mail **/
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "To: $vers_nom <$vers_mail>\r\n";
$entete .= "From: $de_nom <$de_mail>\r\n";
if(!mail($vers_mail, $sujet, $message, $entete)){
echo "L'email n'a pu être envoyé !";
} else {
echo "Email a bien été evoyé par $de_nom ($de_mail) à $vers_nom ($vers_mail)";
}

?>
0
il te manque des chose dans ton entete et dans ton message pour le faire en html, comme les boundary et la version texte de ton message

je te donne ma fonction de mail mais elle dépent de plusieur class si je me souvient bien donc réadapte là

<?php

function Envoi($AdrEnvoi,$AdrExpediteur,$NomExpediteur,$AdrReponse,$NomReponse,$Sujet,$MessageHTML,$Style=NULL,$AdrFile=NULL) {

/*

1 --- $AdrEnvoi : String -> Adr du Destinataire

2 --- $AdrExpediteur : String -> Adr de l'expediteur

3 --- $NomExpediteur : String -> Nom de l'expediteur
Si null le mail correspondant remplacera

4 --- $AdrReponse : String -> Adr de réponse

5 --- $NomReponse : String -> Nom de réponse
Si null le mail correspondant remplacera

6 --- $Sujet : String -> Sujet du message

7 --- $MessageHTML : String -> Message html Pour inserer une image en pièce jointe ecrire img[ la position de l'image dans l'array $Adrfile en partant de 0 ] dans la source Exemple : src="img[0]"
Pour inserer une image restant sur un serveur ecris src="URL" ou src="./imga.png"

8 --- $Style : String -> css du message
NULL le style par défaut sera utilisé

9 --- $AdrFile : Array -> Tableau contenant les adresse des fichiers en pièce jointe
String -> contenant l'adresse du fichier en pièce jointe
NULL Si null pas de pièce jointe

*/

if (is_null($NomExpediteur) OR $NomExpediteur == '') $NomExpediteur = $AdrExpediteur;
if (is_null($NomReponse) OR $NomReponse == '') $NomReponse = $AdrReponse;
if (!is_null($AdrFile) AND $AdrFile != '') {
$boundary = "-----=".md5(rand());
$ContentType = 'Content-Type: multipart/related;
type="multipart/alternative";';
if (is_string($AdrFile)) $AdrFile = array($AdrFile);
if (is_array($AdrFile)) {
$File = '';
$regex = new regex;
$NomExpe = strtr($regex->normalize($NomExpediteur),'.','E');
$aa = new file;
for ($i = 0; $i < count($AdrFile); $i++ ) {
if ($AdrFile[$i] != '' AND !is_null($AdrFile[$i])) {
$ContentFileID[$i] = '2'.strtoupper(md5(rand()).'@'.$NomExpe);
$ContentTypeFile = $aa->ContentType($AdrFile[$i]);
$File .= "

--".$boundary."
Content-Type: ".$ContentTypeFile.";
name=\"".basename($AdrFile[$i])."\"
Content-Transfer-Encoding: base64
Content-ID: <".$ContentFileID[$i].">

".base64_encode($aa->read($AdrFile[$i]));
}
}
if ($File != '') {
$boundaryMessage = "-----=".md5(rand());
$File .= "

--".$boundary."--
";
}
}
}
if (empty($boundaryMessage)) {
$boundary = "-----=".md5(rand());
$ContentType = 'Content-Type: multipart/alternative;';
$Message = "

--".$boundary;
}
else {
$Message = "


--".$boundary."
Content-Type: multipart/alternative;
boundary=\"".$boundaryMessage."\"


--".$boundaryMessage;
}
$Message .= "
Content-Type: text/plain;
charset=\"iso-8859-1\"
Content-Transfer-Encoding: quoted-printable
";
$MessageTexte = preg_replace('#<br />#',"\r\n",$MessageHTML);
$MessageTexte = preg_replace('#</?[a-zA-Z]{1,7}.*>#U','',$MessageTexte);
$Message .= $MessageTexte;
if (empty($boundaryMessage)) $Message .= "

--".$boundary;
else $Message .= "

--".$boundaryMessage;
$Message .= "
Content-Type: text/html;
charset=\"iso-8859-1\"
Content-Transfer-Encoding: quoted-printable

";
while (preg_match('#<img.*src="(\.\.?/.*)".*/>#',$MessageHTML)) {
$ImageDistante = preg_replace('#^.*<img.*src="(\.\.?/.*)".*/>.*$#U',"$1",$MessageHTML);
$AdrCano = realpath($ImageDistante);
$AdrDistante = str_replace(RacineDir,Domaine,$AdrCano);
$MessageHTML = preg_replace("#(<img.*src=\")($ImageDistante)(\".*/>)#U","$1$AdrDistante$3",$MessageHTML);
}
if (isset($ContentFileID)) {
for ($i = 0; $i < count($ContentFileID); $i++ ) {
$MessageHTML = preg_replace("#(<img.*src=\")img\[($i)\](\".*/>)#U","$1cid:$ContentFileID[$i]$3",$MessageHTML);
}
}
$MessageHTML = preg_replace('#(<[a-zA-Z]{1,7}.*)=(".*>)#U',"$1=3D$2",$MessageHTML);
$HTML = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<style>
'.$Style.'
</style>
</head>
<body>
'.$MessageHTML.'
</body>
</html>';
$Message .= $HTML;
if (empty($boundaryMessage)) $Message .= "

--".$boundary."--";
else $Message .= "

--".$boundaryMessage."--".$File;
$Header = 'From: "'.$NomExpediteur.'"<'.$AdrExpediteur.'>
Reply-to: "'.$NomReponse.'"<'.$AdrReponse.'>
MIME-Version: 1.0
'.$ContentType.'
boundary="'.$boundary.'"';
return mail($AdrEnvoi,$Sujet,$Message,$Header);
}

}

?>
0
Lrt88 Messages postés 930 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 12 août 2018 267
23 mars 2009 à 23:00
Je regarderai ça demain dès que je rentre des cours.

En tout cas, je te dis un tout grand MERCI
0

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

Posez votre question
il n'y a que pour les pièces jointe qu'il y a besoin de mes class sinon tu peux inserer des images qui sont sur ton serveur et faire le style css les =" sont automatiquement remplacé par =3D"

tu rentre ton message au format html et ça fonctionne. normalement...
0
Lrt88 Messages postés 930 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 12 août 2018 267
26 mars 2009 à 14:22
Tu vas surement te dire qu'il est con mais j'arrive pas à utiliser ton code, il m'indique toujours
Parse error: syntax error, unexpected T_VARIABLE in \\student\fjc\public_html\mailo.php on line 8

C'est à dire la ligne où j'ai mis
$MessageHTML = "ik probere"

je me suis dis que je devais donner des valeurs à toutes variables j'ai rajouté ça au début du code

<?php

$AdrEnvoi = "ginger@hotmail.com";
$AdrExpediteur ="fjc@fucam.ac.be";
$AdrReponse = "fjc@fucam.ac.be";
$NomReponse = "FJC";
$Sujet = "test"
$MessageHTML = "ik probere";

function Envoi($AdrEnvoi,$AdrExpediteur,$NomExpediteur,$AdrReponse,$NomReponse,$Sujet,$MessageHTML,$Style=NULL,$AdrFile=NULL) {
...

Est-ce que je suis complètement à coté de la plaque ?

:D
0