Votre question

Envoi d'email avec piece jointe

Tags :
  • Free
  • Programmation
Dernière réponse : dans Programmation
26 Mars 2004 16:52:39

Salut à toute la commnauté !
Je possède un site sous free et je souhaite faire un système d'envoi de fichier en ligne.
Je m'explique, je veux un formulaire (c'est fait) qui permette d'envoyer un email (c'est fait) AVEC pièce jointe ! Et ca c'est pas fait. Pour le moment je reçoi juste le chemin d'accès du fichier de l'envoyeur.
J'ai essayé plein de scripts PHP mais je suis sous free... alors ca marche pas !
Heeeeelp !!! :-(

Autres pages sur : envoi email piece jointe

16 Juillet 2004 08:29:36

helas sous free la fonction mail est desactiver pour eviter le spam, il te faudra prendre un autre hebergeur pour ca
16 Juillet 2004 10:52:12

Je te conseille le particulier chez eurower.net il est super bien et c'est extensible serieux avec toute les focntions phph...

@++
Contenus similaires
16 Juillet 2004 18:18:04

Non c'est bon free me convient : j'ai trouvé une alternative simple : le fichier est uploadé sur le ftp et je reçois un mail. ;-)
16 Juillet 2004 18:21:30

mdr...pourquoi toujours faire l'impossible pour rester dans le gratuit ??? sérieusement si tu veux un hébergement digne de ce nom il faut voir vers des solutions pros absoluement raisonnables en termes de prix... ;-)
16 Juillet 2004 18:36:35

Sauf que quand tu est etudiant et que tu n'a pas de revenu y a un HIC...
16 Juillet 2004 21:11:48

il a toujours le dernier mot ce " programmateur " il a de l'ambition !!! lol :p :D 
16 Juillet 2004 21:12:09

oué "programmeur " pardon a toi
17 Juillet 2004 00:10:16

Merci mecam n'en fait pas trop non plus...
17 Juillet 2004 00:11:50

ah lalla mais quand on aime les points on en devient accros !!! je parle pas pour moi !!! llol :p :D 
17 Juillet 2004 08:53:03

retourne apprendre le html gars ;) 
11 Août 2004 15:35:48

Bjr,
Moi j'ai vraiment besoin que mes visiteurs envoi leur photo en pièce jointe mais je n'arrive pas à activer la fonction?
Voici mon
formulaire
Merci de me filer un coup de pouce :-?
11 Août 2004 17:07:22

lol deja on est pas obligé de tout remplir l'envoie marche meme si on rempli pas ^^
ensuite j'ai mi un fichier torrent et ca a marché aussi :p 

Sinon ^^ voir ton formulaire comme ca :p  ca nous aide pas pour t'aider ^^ ( c'est plus le code qui pourrait nous permettre de t'aider )
11 Août 2004 18:50:37

ok voici mon fichier formulaire.php

<html>
<head>
<script language="javascript">
<!--
function verif2(mail) {
var arobase = mail.indexOf("@")
var point = mail.lastIndexOf(".")
if((arobase < 2)||(point + 2 > mail.length)||(point < arobase+2))
{
alert("Email absent ou erroné !");
document.formulaire.mail.focus();
return false;
}
else
{
if (formulaire.nom.value=="")
{
alert("Veuillez remplir le champ Nom");
document.formulaire.nom.focus();
return false;
}
else
{
if (formulaire.prenom.value=="")
{
alert("Veuillez remplir le champ Prenom");
document.formulaire.prenom.focus();
return false;
}
else
{
return true
}
}
}
}
}

//-->
</script>

</head><body bgcolor="#99CCFF"><form name="formulaire" method="post" action="envoi.php" onSubmit="return verif2(this.mail.value)" ENCTYPE="multipart/form-data">
<td><table width="100%" height="305" border="0" bordercolor="#FF0000">
<tr>
<td height="49" colspan="4"><p align="center"></p>
<p align="center"><font color="red"><strong><em><u>ENTREZ
VOS INFORMATIONS CI-DESSOUS:</u></em></strong></font></p>
</td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Nom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input type="text" name="nom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Prénom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input type="text" name="prenom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Email :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input name="mail" type="text" size="40"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Vos photos :</b> <font color="#FF0000">*</font></div></td>
<td><input type="file" name="photos" size="40" MAXLENGTH="80">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="30000">
</td>
<td></td>
</tr>
<tr>
<td colspan="4"><div align="center"><font color="#FF0000">* <font color="#000000" size="1" face="Arial, Helvetica, sans-serif">A
completer pour envoyer !</font></font></div></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="bottom">
<td height="37" colspan="2"><div align="right"><b>Age :</b></div></td>
<td colspan="2"><b>18-25
<input type="radio" name="1" 1 value="18-25"> 25-35
<input type="radio" name="1" 2 value="25-35"> +35
<input type="radio" name="1" 3 value="+35"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Je suis :</b></div></td>
<td colspan="2"><b>amateur :
<input type="radio" name="2" 1 value="amateur">semi-professionnel
:
<input type="radio" name="2" 2 value="semi-professionnel"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>J'accepte des scènes ( </b><A
onclick="window.open('note.html','Info','resizable=no, toolbar=no, location=no, status=no, menubar=no, width=750, height=300';return(false)"
href="note.html"><b>note</b></A><b>) :</b></div></td>
<td colspan="2"><b>solo :
<input type="radio" name="3" 1 value="solo">avec 1 partenaire
:
<input type="radio" name="3" 2 value="avec 1 partenaire"> groupe
:
<input type="radio" name="3" 3 value="groupe"></b></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="middle">
<td height="50" colspan="4"> <div align="center">
<input type="reset" name="Submit2" value="Effacer">
<input type="submit" name="Submit" value="Envoyer">
</div></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>


et mon fichier envoi.php


<body bgcolor="#99CCFF">
<p align="center"></p>
<p align="center"></p>
<p align="center"></p>
<p align="center"> </p>
<p align="center"> </p>
<p align="center"> </p>
<div align="center">
<table width="41%" height="140" border="1">
<tr>
<td><div align="center">
<p><b>VOS INFORMATIONS <br>
<br>
ONT BIEN ETE ENVOYEES.</b> </p>
<p><b>Merci.</b></p>
</div></td>
</tr>
</table>
</div>

<p></p>
<p></p>
<p>                                                                                       <INPUT TYPE=button NAME=Bouton VALUE=" Retour "
onclick="document.location.href='http://kapitolprod.maisonx.com/page1.html'"></p>
<div align="center">

<?php
if ($_FILES['vos photos']['size'] > 30000){
// Traitement de l'erreur
}
mail("kapitolprod@netcourrier.com","Formulaire de reponse",
"Formulaire de reponse:\n
Nom : ".$_POST['nom']."
Prenom : ".$_POST['prenom']."
Mail : ".$_POST['mail']."
Age : ".$_POST['1']."
Je suis : ".$_POST['2']."
J'accepte des scenes : ".$_POST['3']."
");
?>
</div>


Le soucis c'est que je n'ai pas le fichier attaché "Les photos" sur le mail?




11 Août 2004 22:18:46

bon alors deja ta partie en javascript marche pas hein ^^

sinon pour la piece jointe, je vois pas ou tu rataches la piece jointe au mail donc ton erreur viens certainement de la.
le fichier est up sur le compte du site mais pas chez toi vu que tu l'associes pas au mail. ( ou alors t'as pas mi cette partie du code )
( qd tu utilises le type="file" dans un formulaire ca va copier le fichier sur le serveur a l'emplacement prévu par defaut donc faut que tu fasses un move_upload_file pour mettre le fichier deja a un endroit qui t'es accessible. )
et ensuite l'attacher au mail.
11 Août 2004 22:28:16

Ouille,je te remercie infiniment pour ta réponse et ta patience cependant étant un peu débutant,peux-tu etre plus basique dans tes explications?

Et pour ma partie Java qu'est-ce qui ne va pas?
Voilà ceux qu'on m'a conseillé sur un autre forum:

"Pour un upload, c'est pas la meilleure des façons, il est déjà plus logique de faire"

code :


if ($_FILES['nom_du_fichier']['size'] > 30000){
// Traitement de l'erreur
} "

Mais je ne sais pas ou insérer ce code et est-il bon?
D'autre part cela n'est pas suffisant dois-je modifier mon fichier formulaire.php ???

Désolé de te poser toutes ses questions;-)
11 Août 2004 23:07:42

ok,
est-ce que ce script java va faire l'affaire pour vérifier l'adresse mail
Citation :

function verifiermail(mail) {
if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
return true
} else {
alert("Mail invalide !");
return false
}
}
12 Août 2004 03:05:17

alors qd je parle de ta partie java c'est qu'elle marche pas.
on peut enovoyer le formulaire sans tout remplir. ( ce qui devrait produire des erreurs normalement )

Pour ton probleme de piece jointe. La fonction que tu utilises upload le fichier sur le serveur pas sur ton mail. capiche ?

pour ce qui est de ta vérification sur la taille, ca me parait petit 30ko en taille maxi. ( enfin ca c'est toi qui voit. )
mais je le repete je vois pas bien comment tu pourrais avoir une piece jointe sur ton mail sans y mettre le fichier uploadé.
12 Août 2004 12:37:45

Citation :

resurectin a écrit :


faut que tu fasses un move_upload_file pour mettre le fichier deja a un endroit qui t'es accessible.
et ensuite l'attacher au mail.


Merci pour ta patience mais je ne comprends pas? :-?
Aurais-tu l'amabilité de modifier mes codes,de façon à ce qu'ils fonctionnent??? ;-)
12 Août 2004 14:10:07

en gros tu l'utilises comme ca la fonction move_upload_file

Citation :
if(move_uploaded_file($Fichier, "upload/appli/".$rep."/".$Fichier_name)) {


la ca fait : si le fichier est deplacer alors ( donc ca effectue le deplacement )

si tu veux des complements d'informations dessus je te conseil d'aller voir la : nexen

tu tapes le nom de la fonction dans l'encadré de recherche et ca te dira comment l"utiliser etc...

12 Août 2004 20:33:03

ok j'ai modifié mes fichiers mais toujours pas d'envoi avec pièce jointe,je te remets mes fichiers:

Formulaire

Code :

<script language="javascript">
<!--
function verif(mail)
{
var arobase = mail.indexOf("@")
var point = mail.lastIndexOf(".")
if((arobase < 2)||(point + 2 > mail.length)||(point < arobase+2))
{
alert("Email absent ou erroné !");
document.formulaire.mail.focus();
return false;
}
else
{
if (formulaire.nom.value=="")
{
alert("Veuillez remplir le champ Nom");
document.formulaire.nom.focus();
return false;
}
else
{
if (formulaire.prenom.value=="")
{
alert("Veuillez remplir le champ Prenom");
document.formulaire.prenom.focus();
return false;
}
else
{
if (formulaire.photos.value=="")
{
alert("Veuillez sélectionner votre fichier");
return false;
}
else
{
return true
}
}
}
}
}

//-->
</script>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head><body bgcolor="#99CCFF">
<form action="envoi.php" method="POST" enctype="multipart/form-data" name="formulaire" onSubmit="return verif(this.mail.value)">
<input type='hidden' name='dest' value='logicmaison@hotmail.com'>
<input type='hidden' name='formulaire' value='Formulaire envoye avec un fichier à Kapitolprod'>
<input type='hidden' name='titre' value="Formulaire de Kapitolprod">
<input type='hidden' name='sujet' value="Envoi de coordonnées">
<td><table width="100%" height="305" border="0" bordercolor="#FF0000">
<tr>
<td height="49" colspan="4"><p align="center"></p>
<p align="center"><font color="red"><strong><em><u>ENTREZ
VOS INFORMATIONS CI-DESSOUS:</u></em></strong></font></p>
</td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Nom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input type="text" name="nom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Prénom :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input type="text" name="prenom"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Email :</b> <font color="#FF0000">*</font></div></td>
<td colspan="2"><input name="mail" type="text" size="40"></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Vos photos :</b> <font color="#FF0000">*</font></div></td>
<td><input type=file name="photos" size="40" MAXLENGTH="80">
</td>
<td></td>
</tr>
<tr>
<td colspan="4"><div align="center"><font color="#FF0000">* <font color="#000000" size="1" face="Arial, Helvetica, sans-serif">A
completer pour envoyer !</font></font></div></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="bottom">
<td height="37" colspan="2"><div align="right"><b>Age :</b></div></td>
<td colspan="2"><b>18-25
<input type="radio" name="1" 1 value="18-25"> 25-35
<input type="radio" name="1" 2 value="25-35"> +35
<input type="radio" name="1" 3 value="+35"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>Je suis :</b></div></td>
<td colspan="2"><b>amateur :
<input type="radio" name="2" 1 value="amateur">semi-professionnel :
<input type="radio" name="2" 2 value="semi-professionnel"></b></td>
</tr>
<tr>
<td colspan="2"><div align="right"><b>
J'accepte des scènes </b>( <A onclick="window.open('note.html','Info','resizable=no, toolbar=no, location=no, status=no, menubar=no, width=750, height=300');return(false)"
href="note.html"><b>note</b></A><b> ) :</b></div></td>
<td colspan="2"><b>solo :
<input type="radio" name="3" 1 value="solo">avec 1 partenaire :
<input type="radio" name="3" 2 value="avec 1 partenaire"> groupe :
<input type="radio" name="3" 3 value="groupe"></b></td>
</tr>
<tr>
<td width="14%"><div align="center"> </div></td>
<td colspan="2"><hr></td>
<td width="12%"></td>
</tr>
<tr valign="middle">
<td height="50" colspan="4"> <div align="center">
<input type="reset" name="Submit2" value="Effacer">
<input type="submit" name="Submit" value="Envoyer">
</div></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>



et mon fichier envoi.php

Code :

<body bgcolor="#99CCFF">
<div align="center">
<p> </p>
<p> </p>
<table width="41%" height="140" border="1">
<tr>
<td><div align="center">
<p><b>VOS INFORMATIONS <br>
<br>
ONT BIEN ETE ENVOYEES.</b> </p>
<p><b>Merci.</b></p>
</div></td>
</tr>
</table>
</div>
<div align= center>
<p><INPUT TYPE=button NAME=Bouton VALUE=" Retour "
onclick="document.location.href='http://kapitolprod.maisonx.com/page1html'">
</p></div>
<?

$name_file = $_FILES['photos']['name'];
$source=$_FILES['photos']['tmp_name'];

move_uploaded_file($source, "./".$name_file);

$extension=get_extension($name_file);

$type="text/plain";
if($type=="doc")
{
$type="text/vnd.ms-word";
}
else if($type=="xls")
{
$type="text/vnd.ms-excel";
}

$type2="image/png";

if($extension=="gif")
{
$type2="image/gif";
}
else if($extension=="bmp")
{
$type2="image/bmp";
}

function get_extension($filename)
{
$parts = explode('.',$filename);
$last = count($parts) - 1;
$ext = $parts[$last];
return $ext;
}

if($_POST['dest']!="")
{
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";

$msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";

$msg .= "--$boundary\r\n";

$msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= $_POST['formulaire'];
$msg .= "\r\n";
$msg .= "\r\n";
$msg .= Nom__.$_POST['nom'];
$msg .= "\r\n";
$msg .= Prenom__.$_POST['prenom'];
$msg .= "\r\n";
$msg .= Mail__.$_POST['mail'];
$msg .= "\r\n";
$msg .= Age__.$_POST['1'];
$msg .= "\r\n";
$msg .= Je_suis__.$_POST['2'];
$msg .= "\r\n";
$msg .= Accepte_les_scènes__.$_POST['3'];
$msg .= "\r\n";

if($name_file!="")
{
$file = $name_file;
$fp = fopen($file, "rb");
$attachment = fread($fp, filesize($file));
fclose($fp);

$attachment = chunk_split(base64_encode($attachment));

$msg .= "--$boundary\r\n";
$msg .= "Content-Type: $type2; name=\"$file\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: inline; filename=\"$file\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";
}

$destinataire = $_POST['dest'];
$expediteur = $_POST['titre'];

mail($destinataire, $_POST['sujet'], $msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);

}

if($name_file!="")
{
unlink($name_file);
}

?>


Simplement un message après l'envoi:
"nullmailer-inject: Invalid header line: Reply-To: Unable to parse the addresses."
Mais essaye donc toi :
mon formulaire
13 Août 2004 02:45:00

Cette fois ci ton javascript marche ^^ c'est deja une amelioration. ( je sais pas si t'as changé qqchose: p ou si c t pas mi la dernier fois )

> pour le reste ^^ a pas vraiment envie de tout lire dans les détails :p 
j'ai pas vu de fautes particulieres mais bon :p  ( manque de motivation la :p  )

13 Août 2004 03:06:31

mdr, ca me rappel mes début PHP, des codes non structuré et tout lol

Je vais jeter un coup d'oeil sur ton script, pour voir si je peut t'aider à comprendre pourquoi ca ne marche pas (compte pas sur moi pour te sortir du code tout fait hein :-D c'est pas mon genre).

Amicalement
13 Août 2004 03:29:07

Citation :
mail($destinataire, $_POST['sujet'], $msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header);


Tu fait appel à 2 variables pour le "reply-to" et pour l'expediteur (qui dans ton cas, sont surement la même adresse). Mais ni $reponse ni $expediteur n'ont de valeur. Il faut que ces 2 variables aient une valeur. Ce code juste au dessus de la fonction mail pourrait coriger le problème :

$reponse = "ton@e.mail";
$expediteur = "Votre site preferé <ton@e.mail>";


Sinon l'envoi de l'image en fichier joint ne me semble pas avoir d'erreur.

Amicalement
13 Août 2004 09:30:22

tu penses que c'est mieux là:
mail($kapitolprod@netcourrier.com, $_POST['sujet'], $msg,
"Reply-to: $reponse\r\nFrom: $kapitolprod@netcourrier.com\r\n".$header);

Qu'en penses-tu?

Mais j'ai pas oublié une extension JPEG,du style:

if($extension=="jpeg")
{
$type2="image/jpeg";
13 Août 2004 15:07:34

mail($kapitolprod@netcourrier.com, $_POST['sujet'], $msg,
"Reply-to: $reponse\r\nFrom: $kapitolprod@netcourrier.com\r\n".$header);

Hum, non je ne pense pas que se soit mieu, là c truffé d'erreur ! Regarde :
$kapitolprod@netcourrier.com ne sera pas consideré comme une adresse "kapitolprod@netcourrier.com" mais tu aura un retour du style "@netcourrier.com".
Tout simplement parcque la variable $kapitolprod n'existe pas, donc elle retourne rien.

Je te conseille cette syntaxe suivante :

Citation :
$destinataire = $_POST['dest']; // l'email du client
$expediteur = "kapitolprod@netcourrier.com"; // ton email
mail($destinataire, $_POST['sujet'], $msg,
"Reply-to: ".$expediteur."\r\nFrom: ".$expediteur."\r\n".$header);


Pour les extention "jpeg", je n'ai pas regardé avec précision cette parti du code mais il me semble que la syntaxe de verification ne soit pas la meilleur.

En esperant t'avoir aidé,
Amicalement
13 Août 2004 21:35:19

ok,je te remercie donc en fait je supprime:

Citation :
mail($destinataire, $_POST['sujet'], $msg,
"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header)


ou c'est pas utile?
14 Août 2004 01:25:42

Non, tu ne supprime rien ;o)
Tu ajoute juste ces 2 ligne au dessus de la fonction "mail()" :
Citation :
$destinataire = $_POST['dest']; // l'email du client
$expediteur = "kapitolprod@netcourrier.com"; // ton email


et tu change la variable "$reponse" par "$expediteur" dans la fonction "mail()"

Amicalement
21 Août 2004 10:49:31

Salut,
Bon au final cela me donne cela:

$destinataire = $_POST['dest'];
$expediteur = "kapitolprod@netcourrier.com";
$reponse = $expediteur;
mail($_POST['destinataire'], $_POST['sujet'], $msg, "Reply-to: {$_POST['reponse']}\r\nFrom: {$_POST['expediteur']}\r\n".$header);



@+
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS