Envoyer EMAIL EN PHP
Lrt88
Messages postés
930
Date d'inscription
Statut
Membre
Dernière intervention
-
Lrt88 Messages postés 930 Date d'inscription Statut Membre Dernière intervention -
Lrt88 Messages postés 930 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Envoyer EMAIL EN PHP
- Comment creer un compte email - Guide
- Envoyer un sms en différé - Guide
- Facebook piraté et adresse email changé - Guide
- Mon email ✓ - Forum Mail
- Envoyer un mail en cci - Guide
6 réponses
les images tu peux les intégrer en mettant <img src=3D"http://ton domaine/le chemin vers l'image" />
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)";
}
?>
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)";
}
?>
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);
}
}
?>
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);
}
}
?>
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...
tu rentre ton message au format html et ça fonctionne. normalement...
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
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