Le retour

Répondre
Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Le retour

Message par Philippe GUEGAN » jeu. déc. 29, 2005 6:36 pm

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.

:new_silly:

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);


?>

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » ven. déc. 30, 2005 6:23 pm

j'ai du faire le tour du net des mail avec fichiers joint et de l'upload.
Là j'en connais un rayon :P

En fait tout se passe bien, je reçois bien le mail avec le fichier associé, au bon poids de l'image.

Mais impossible d'ouvrir l'image.

Il y a un hic quelque part mais je ne sais pas où :new_Eyecrazy:

Philippe

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » ven. déc. 30, 2005 6:47 pm

Je t'ai envoyé un mail sur contact@clairinfo pour te montrer les résultats que j'obtiens :twisted:
Philippe

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » ven. déc. 30, 2005 7:44 pm

Re bonjour Philippe :wink:

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.

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » ven. déc. 30, 2005 7:51 pm

Au fait l'upload ne te suffisait pas ? :roll:
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.

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » sam. déc. 31, 2005 7:43 am

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

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » lun. janv. 02, 2006 3:02 am

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

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » lun. janv. 02, 2006 9:07 am

J'avais en effet vue cette classe, je me demandais juste ou la mettre est ce que je la mettais avec mes autres classes?
Philippe

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » lun. janv. 02, 2006 6:17 pm

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).

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » mar. janv. 03, 2006 7:58 am

Bonjour Côme et bonne année.

J'essaie aujourd'hui et je te tiens au courant

Philippe

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » mer. janv. 04, 2006 6:39 pm

:mrgreen:

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

Régis
Messages : 243
Enregistré le : ven. avr. 11, 2003 2:23 pm
Localisation : Lyon

Message par Régis » ven. janv. 06, 2006 10:27 am

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

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » sam. janv. 07, 2006 8:01 am

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

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » sam. janv. 07, 2006 6:34 pm

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 :

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);

?>
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.

Philippe GUEGAN
Messages : 108
Enregistré le : jeu. oct. 31, 2002 11:51 am
Localisation : Breizh
Contact :

Message par Philippe GUEGAN » lun. janv. 09, 2006 9:07 am

salut,
Le fait que je sois sous windows 98 au bureau a peut être son importance, je vais essayer avec mon portable

Philippe

Répondre