par
Nertius » 29 mars 2010, 16:35
Hey,
Je suis en train de mettre un formulaire pour envoyer un mail via mon site.
J'utilise donc pour se faire un script php trouvé su rle site du zéro, permettant d'envoyer des pièces jointes. Ce que je souhaiterai faire c'est à la place d'une pièce jointe se situant sur mon ordi, envoyé une image trouvé sur internet :
Ma première idée était d'enregistrer l'image trouvé sur internet dans une image(test) sur mon serveur, puis d'ouvrir cette image
Malheureusement, l'enregistrement de fonctionne pas du tout!!!
Dans $pièce se trouve l'url de l'image.
<?php
function envoimail($mail,$sujet,$message_html,$piece)
{
//Enregistrement de l'image sur le serveur
copy($piece,"test.jpg");
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui bugs
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML
$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe
$fichier = fopen("test.jpg", "r");
$attachement = fread($fichier, filesize("test.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet
$message_txt = "Votre boîte mail ne lit pas le html";
//=========
//=====Création du header de l'e-mail
$header = "From: \"flo\"<florent*****@gmail.com>".$passage_ligne;
$header.= "Reply-to: \"flo\" <florent****@gmail.com>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
//=====On ferme la boundary alternative
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout de la pièce jointe
$message.= "Content-Type: image/jpeg; name=\"test.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"test.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail
mail($mail,$sujet,$message,$header);
//==========
}
?>
ça fait deux jours que je sèche !! un peu d'aide s'il vous plait ???
Hey,
Je suis en train de mettre un formulaire pour envoyer un mail via mon site.
J'utilise donc pour se faire un script php trouvé su rle site du zéro, permettant d'envoyer des pièces jointes. Ce que je souhaiterai faire c'est à la place d'une pièce jointe se situant sur mon ordi, envoyé une image trouvé sur internet :
Ma première idée était d'enregistrer l'image trouvé sur internet dans une image(test) sur mon serveur, puis d'ouvrir cette image
Malheureusement, l'enregistrement de fonctionne pas du tout!!!
Dans $pièce se trouve l'url de l'image.
[php]
<?php
function envoimail($mail,$sujet,$message_html,$piece)
{
//Enregistrement de l'image sur le serveur
copy($piece,"test.jpg");
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui bugs
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML
$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//==========
//=====Lecture et mise en forme de la pièce jointe
$fichier = fopen("test.jpg", "r");
$attachement = fread($fichier, filesize("test.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========
//=====Définition du sujet
$message_txt = "Votre boîte mail ne lit pas le html";
//=========
//=====Création du header de l'e-mail
$header = "From: \"flo\"<florent*****@gmail.com>".$passage_ligne;
$header.= "Reply-to: \"flo\" <florent****@gmail.com>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
//=====On ferme la boundary alternative
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout de la pièce jointe
$message.= "Content-Type: image/jpeg; name=\"test.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"test.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail
mail($mail,$sujet,$message,$header);
//==========
}
?>
[/php]
ça fait deux jours que je sèche !! un peu d'aide s'il vous plait ???