Le retour
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Le retour
Je crois que je suis au bord de la crise de nerfs avec mes anvois de pièces jointes
J'ai choisi de les envoyer au format html, je reçois bien le mail, mais deux terribles croix rouges à la placedes photos et je ne comprend pas pourquoi.
Peux tu survoler mon code pour voir ce qui ne va pas.
philippe:
<?php /* Date de création: 26/11/05 */
include_once("globals.inc.php");
include_once("fonctions.inc.php");
// On commence par récupérer les champs
if(isset($_POST['genre'])) $genre=$_POST['genre'];
else $genre="";
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['adresse1'])) $adresse1=$_POST['adresse1'];
else $adresse1="";
if(isset($_POST['adresse2'])) $adresse2=$_POST['adresse2'];
else $adresse2="";
if(isset($_POST['codepostal'])) $codepostal=$_POST['codepostal'];
else $codepostal="";
if(isset($_POST['selectville1'])) $selectville1=$_POST['selectville1'];
else $selectville1="";
if(isset($_POST['telephone'])) $telephone=$_POST['telephone'];
else $telephone="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['vente_location'])) $vente_location=$_POST['vente_location'];
else $vente_location="";
if(isset($_POST['naturedubien'])) $naturedubien=$_POST['naturedubien'];
else $naturedubien="";
if(isset($_POST['selectville2'])) $selectville2=$_POST['selectville2'];
else $selectville2="";
if(isset($_POST['nombre_de_pieces'])) $nombre_de_pieces=$_POST['nombre_de_pieces'];
else $nombre_de_pieces="";
if(isset($_POST['surface'])) $surface=$_POST['surface'];
else $surface="";
if(isset($_POST['surface2'])) $surface2=$_POST['surface2'];
else $surface2="";
if(isset($_POST['msg'])) $msg=$_POST['msg'];
else $msg="";
if(isset($_FILES['pho1'])) $pho1 =$_FILES['pho1']['tmp_name'];
else $pho1="";
$photo1 = ' ./upload/skeud.jpg';
move_uploaded_file($pho1,$photo1);
if(isset($_FILES['pho2'])) $pho1 =$_FILES['pho2']['tmp_name'];
else $pho2="";
$photo2 = ' ./upload/skeud2.jpg';
move_uploaded_file($pho2,$photo2);
if(isset($_FILES['pho3'])) $pho1 =$_FILES['pho3']['tmp_name'];
else $pho3="";
//----------------------------------
// 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:./upload/skeud.jpg\"><br />";
$msg .= "Image 2:<img src=\"cid:./upload/skeud2.jpg\"><br /></body></html>\r\n";
$msg .= "\r\n";
//---------------------------------
// 2nde partie du message
// Le 1er fichier (inline)
//---------------------------------
$fichier = "$photo1";
$chemin = "./upload/";
$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: <./upload/skeud.jpg>\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 ="$photo2";
$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: <./upload/skeud2.jpg>\r\n";
$msg .= "\r\n";
$msg .= $fichierattache . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$delimiteur\r\n";
$destinataire = "property@wanadoo.fr";
$expediteur = "property@wanadoo.fr";
$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);
?>
J'ai choisi de les envoyer au format html, je reçois bien le mail, mais deux terribles croix rouges à la placedes photos et je ne comprend pas pourquoi.
Peux tu survoler mon code pour voir ce qui ne va pas.
philippe:
<?php /* Date de création: 26/11/05 */
include_once("globals.inc.php");
include_once("fonctions.inc.php");
// On commence par récupérer les champs
if(isset($_POST['genre'])) $genre=$_POST['genre'];
else $genre="";
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['adresse1'])) $adresse1=$_POST['adresse1'];
else $adresse1="";
if(isset($_POST['adresse2'])) $adresse2=$_POST['adresse2'];
else $adresse2="";
if(isset($_POST['codepostal'])) $codepostal=$_POST['codepostal'];
else $codepostal="";
if(isset($_POST['selectville1'])) $selectville1=$_POST['selectville1'];
else $selectville1="";
if(isset($_POST['telephone'])) $telephone=$_POST['telephone'];
else $telephone="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['vente_location'])) $vente_location=$_POST['vente_location'];
else $vente_location="";
if(isset($_POST['naturedubien'])) $naturedubien=$_POST['naturedubien'];
else $naturedubien="";
if(isset($_POST['selectville2'])) $selectville2=$_POST['selectville2'];
else $selectville2="";
if(isset($_POST['nombre_de_pieces'])) $nombre_de_pieces=$_POST['nombre_de_pieces'];
else $nombre_de_pieces="";
if(isset($_POST['surface'])) $surface=$_POST['surface'];
else $surface="";
if(isset($_POST['surface2'])) $surface2=$_POST['surface2'];
else $surface2="";
if(isset($_POST['msg'])) $msg=$_POST['msg'];
else $msg="";
if(isset($_FILES['pho1'])) $pho1 =$_FILES['pho1']['tmp_name'];
else $pho1="";
$photo1 = ' ./upload/skeud.jpg';
move_uploaded_file($pho1,$photo1);
if(isset($_FILES['pho2'])) $pho1 =$_FILES['pho2']['tmp_name'];
else $pho2="";
$photo2 = ' ./upload/skeud2.jpg';
move_uploaded_file($pho2,$photo2);
if(isset($_FILES['pho3'])) $pho1 =$_FILES['pho3']['tmp_name'];
else $pho3="";
//----------------------------------
// 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:./upload/skeud.jpg\"><br />";
$msg .= "Image 2:<img src=\"cid:./upload/skeud2.jpg\"><br /></body></html>\r\n";
$msg .= "\r\n";
//---------------------------------
// 2nde partie du message
// Le 1er fichier (inline)
//---------------------------------
$fichier = "$photo1";
$chemin = "./upload/";
$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: <./upload/skeud.jpg>\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 ="$photo2";
$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: <./upload/skeud2.jpg>\r\n";
$msg .= "\r\n";
$msg .= $fichierattache . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$delimiteur\r\n";
$destinataire = "property@wanadoo.fr";
$expediteur = "property@wanadoo.fr";
$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);
?>
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Re bonjour Philippe
Effectivement je ne récupère pas l'image dans ton mail.
Bon j'en étais resté aux histoires d'upload moi !
Email avec pièces jointes c'est autre chose.
Pour cela j'ai utilisé une classe php dédié à l'email trouvée sur le net.
Cela s'est bien passé pour du word en PJ il faut que je teste sur une image et je reviens vers toi.
Effectivement je ne récupère pas l'image dans ton mail.
Bon j'en étais resté aux histoires d'upload moi !
Email avec pièces jointes c'est autre chose.
Pour cela j'ai utilisé une classe php dédié à l'email trouvée sur le net.
Cela s'est bien passé pour du word en PJ il faut que je teste sur une image et je reviens vers toi.
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Au fait l'upload ne te suffisait pas ?
L'upload te permet donc déjà de récupérer des fichiers transmis par des clients...
A priori remettre ces fichiers par email n'est pas nécessaire.
L'alerte email est pratique par contre. Moi je crée un lien dans l'email vers une page qui me permet de visualiser les infos transmises par le client (messages, photo etc...) pour pouvoir valider ou non l'affichage.
Bon ton cas est peut-être différent bien sûr.
L'upload te permet donc déjà de récupérer des fichiers transmis par des clients...
A priori remettre ces fichiers par email n'est pas nécessaire.
L'alerte email est pratique par contre. Moi je crée un lien dans l'email vers une page qui me permet de visualiser les infos transmises par le client (messages, photo etc...) pour pouvoir valider ou non l'affichage.
Bon ton cas est peut-être différent bien sûr.
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
En fait, tu as une maison à vendre en Bretagne,
Tu consulte mon site et tu te dis que se serait une bonne idée de me la donner.
Tu remplis le formulaire et tu l'envoie.
Je ne peux pas l'insérer directement dans une base de données.
Je reçois l'email, je le redirige vers le commercial dont c'est le secteur.
Il va allez voir la maison, t'envoyer un mandat de vente et l'insérer dans la base
Voilà pourquoi c'est plus pratique de recevoir un email
Si tu te rappele j'ai déjà ce systéme sur mon site, mais c'est une usine à gaz et je reçois les photos en html
Je trouvais mieux en pièce jointe.
Le pb doit venir de mon php ini qui ne recode pas correctement le fichier
Philippe
Tu consulte mon site et tu te dis que se serait une bonne idée de me la donner.
Tu remplis le formulaire et tu l'envoie.
Je ne peux pas l'insérer directement dans une base de données.
Je reçois l'email, je le redirige vers le commercial dont c'est le secteur.
Il va allez voir la maison, t'envoyer un mandat de vente et l'insérer dans la base
Voilà pourquoi c'est plus pratique de recevoir un email
Si tu te rappele j'ai déjà ce systéme sur mon site, mais c'est une usine à gaz et je reçois les photos en html
Je trouvais mieux en pièce jointe.
Le pb doit venir de mon php ini qui ne recode pas correctement le fichier
Philippe
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Regarde cette classe :
http://stephaneey.developpez.com/tutori ... phpmailer/
J'ai essayé sans souci ici avec une pièce jointe (jpg) et en local sous EasyPhp
http://stephaneey.developpez.com/tutori ... phpmailer/
J'ai essayé sans souci ici avec une pièce jointe (jpg) et en local sous EasyPhp
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Peu importe je crois où tu places cette classe. Il faut simplement penser à préciser les accès aux fichiers (classe et fichier image) en relatif par rapport au script appelant.
Pour mon test j'ai simplifié un peu en plaçant tout dans un dossier phpmailer mais je ne vois pas trop ce qui pourrait bloquer en déplaçant cette classe. Bon je n'ai pas tout épluché, juste vérifié que cela fonctionnait, contrairement à ma classe précédente "mime_mail.class.php" qui elle effectivement ne fonctionnait pas en local pour du mail avec pièce jointe (elle marchait chez l'hébergeur).
Pour mon test j'ai simplifié un peu en plaçant tout dans un dossier phpmailer mais je ne vois pas trop ce qui pourrait bloquer en déplaçant cette classe. Bon je n'ai pas tout épluché, juste vérifié que cela fonctionnait, contrairement à ma classe précédente "mime_mail.class.php" qui elle effectivement ne fonctionnait pas en local pour du mail avec pièce jointe (elle marchait chez l'hébergeur).
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Je suis vert de rage, j'ai bien réussi à charger la méthode toput impeccable, email envoyé avec succès et tout mais à l'oyuverture du fichier j'ai toujours le même problème impossible d'ouvrir la photo.
D'après moi ça vient de ma config mais je ne sais pas où.
Peut être dois-je passer outre et attendre de faire les tests en grandeur nature sur l'hébergeur.
Philippe
Bonjour Philippe et bonne Année,
Je me demande si la configuration de ton lecteur d'e-mail est correctement paramétré pour accepter les photos en pieces jointes.
Peut etre également que le blocage vient de ton anti-virus.
Dans Outlook Express, choisis dans le menu Outils: Options :Sécurité et coche :
Zone Internet plutot que Zone de sites sensibles
Régis
Je me demande si la configuration de ton lecteur d'e-mail est correctement paramétré pour accepter les photos en pieces jointes.
Peut etre également que le blocage vient de ton anti-virus.
Dans Outlook Express, choisis dans le menu Outils: Options :Sécurité et coche :
Zone Internet plutot que Zone de sites sensibles
Régis
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Bonjour Régis et bonne année
J'y ai bien pensé, mais je reçois autrement des pièces jointes sans problèmes
je pense que le pb vient plutôt au moment de la fabrication du fichier.
Si j'ai bien compris le système, le fichier jpg est transformé en fichier binaire puis recompressé en jpdg et c'est là qu'il y a un os.
Philippe
J'y ai bien pensé, mais je reçois autrement des pièces jointes sans problèmes
je pense que le pb vient plutôt au moment de la fabrication du fichier.
Si j'ai bien compris le système, le fichier jpg est transformé en fichier binaire puis recompressé en jpdg et c'est là qu'il y a un os.
Philippe
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Salut Philippe
Tu as donc essayé la classe phpmailer que je t'indiquais sans succès ?
C'est un peu étrange puisque j'y suis arrivé sans problème ici.
Ma config de test :
XP-SP2 à jour
EasyPhp 1.7
Php.ini modifié pour l'envoir des mails comme vu ensemble (je pars sur smtp.free.fr)
Dossier phpmailer téléchargé et installé dans C:\Program Files\EasyPHP1-7\www
Fichier Test.jpg (227 Ko) installé dans le dossier phpmailer
Fichier Test.php installé dans le dossier phpmailer :
Puis j'ai lancé Test.php et j'ai bien reçu le mail avec le jpeg correct.
Essaie peut-être comme cela en simplifiant au maximum pour éviter toute coquille.
Tu as donc essayé la classe phpmailer que je t'indiquais sans succès ?
C'est un peu étrange puisque j'y suis arrivé sans problème ici.
Ma config de test :
XP-SP2 à jour
EasyPhp 1.7
Php.ini modifié pour l'envoir des mails comme vu ensemble (je pars sur smtp.free.fr)
Dossier phpmailer téléchargé et installé dans C:\Program Files\EasyPHP1-7\www
Fichier Test.jpg (227 Ko) installé dans le dossier phpmailer
Fichier Test.php installé dans le dossier phpmailer :
Code : Tout sélectionner
<?
require "class.phpmailer.php";
$mail = new PHPmailer();
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='smtp.free.fr';
$mail->From='test@clairinfo.fr';
$mail->AddAddress('come@clairinfo.fr');
$mail->AddReplyTo('test@clairinfo.fr');
$mail->Subject='Exemple ';
$mail->Body='<html><body><center><font size=8>Le fichier est attaché ci-dessus</font><br></body></html>';
$mail->AddAttachment('test.jpg');
if(!$mail->Send()){
echo $mail->ErrorInfo;
}
else{
echo 'Mail envoyé avec succès';
}
$mail->SmtpClose();
unset($mail);
?>
Essaie peut-être comme cela en simplifiant au maximum pour éviter toute coquille.
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :