Pieces jointes

bonjour
votre aide sera la bien venue

j’ai crée un formulaire qui permet de saisir des info
dans ce formulaire on peut insere des pieces jointes
j’ai réussi a envoyer des mail avec en pieces jointes des images,… dont les formats sont jpg, jpeg,…
j’utilise une classe “mime_mail” constituer d’une serie de fonction

"good_format est une fonction que j’ai crée et qui n’est pas dans la classe "

le probleme c’est que quand je veux envoyer un fichier autre qu’une image le fichier est envoyer mais on ne recoonait pas le format

je n’arrive pas a comprendre et ca m’enerve je vous met a la suite la fonction de la classe correspondant a attach_file

j’espère que dans ce forum il y aura de l’aide
merci

peux-tu mettre ton titre en minuscule stp ? :jap:

pourquoi ca pose un probleme???
c’est une question

si tu veux m’aider ton aide est a bien venue et si c’est pour me faire chier desolé mais j’ai d’autres choses a faire

heu, juste comme ça au passage, jeanguy et moi sommes moderateurs sur ce forum, donc c’est juste un petit conseil :

:jap:

excuse moi mais ce n’est pas le premier forum que je visite et il y a des personnes qui se sont mis m’envoyer des reponses croyant que c’estait un forum de discussion voire de rencontre
encore une fois desolé

edit ton topic et met le titre en minuscule svp :jap:

c’est quoi un topic???

Le truc que tu viens de poster ici :smiley:

Qu’entends-tu par “on ne reconnait pas le format”?

application/octet-stream

lors de l’envoi de l’email je recois le message avec un fichier joint mais lorsque je veux l’ouvrir un fenetre apparait disant aucun programme n’est associé au fichier c:/…pour cette opération
de plus le nom du fichier se nomme dans la reception du mail: php8rcg30 alors que ce n’est pas le nom a l’origine
merci pour l’aide

Ben voilà…

application/octet-stream = extension mime pour désigner tout et n’importe quoi
Pas d’extension pour devinier le type du fichier, comment le client mail pourrait-il s’en sortir (Je ne crois pas qu’il y en ait beaucoup qui testent l’entête binaire)

-> Une solution, rétablir la bonne extension

Juste comme ça pour les images, c’est getimagesize qu’il faut utiliser. Pas se baser sur l’extension :slight_smile:

ok merci pour l’info mais tel que je l’ai fait ca marche bien
le probléme c’est que j’arrive pas envoyer des fichier autre que des images

perso j’utilise la classe sendmail qui fonctionne tres bien
si cela peut t’aider :bounce:

la classe :

[cpp]

<? class sendmail { // Variable deklarieren var $emailheader = ""; var $textheader = ""; var $textboundary = ""; var $emailboundary = ""; var $charset = ""; var $betreff = ""; var $empfaenger = ""; var $attachment = array(); var $cc = array(); var $bcc = array(); // Konstruktor function sendmail() { $this->textboundary = uniqid(time()); $this->emailboundary = uniqid(time()); $this->charset = "ISO-8859-1"; } // Funktion zum setzen des CharSet´s function SetCharSet($char) { $this->charset = $char; } // Funktion die überprüft ob die E-Mailadresse korrekt ist function Validate_email($mailadresse) { if(!preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})/i",$mailadresse)) { die('Die E-Mailadresse '.$mailadresse.' ist nicht gültig!!!'); } return $mailadresse; } // Von wem die Email kommt in den Header setzen function from($name,$email) { $this->emailheader .= 'From: '.$name.'<'.$email.'>'."\r\n"; } // Funktion um den Adressaten anzugeben function to($to) { $this->empfaenger = $this->Validate_email($to); } // Funktion zum senden einer Kopie an Cc Empfänger function cc($kopie_an_empfaenger) { $this->cc[] = $kopie_an_empfaenger; } // Funktion zum senden einer Kopie an Bcc Empfänger function bcc($kopie_an_empfaenger) { $this->bcc[] = $kopie_an_empfaenger; } // Erstellt den Header der Mime-Mail function makeMimeMail() { if(count($this->cc) > 0) { $this->emailheader .= 'Cc: '; for($i=0;$icc);$i++) { if($i > 0) $this->emailheader .= ','; $this->emailheader .= $this->Validate_email($this->cc[$i]); } $this->emailheader .= "\r\n"; } if(count($this->bcc) > 0) { $this->emailheader .= 'Bcc: '; for($j=0;$jbcc);$j++) { if($j > 0) $this->emailheader .= ','; $this->emailheader .= $this->Validate_email($this->bcc[$j]); } $this->emailheader .= "\r\n"; } $this->emailheader .= 'MIME-Version: 1.0'."\r\n"; } // Funktion für den Betreff anzugeben function subject($subject) { $this->betreff = $subject; } // Textdaten in Email Header packen function text($text) { $this->textheader .= 'Content-Type: multipart/alternative; boundary="'.$this->textboundary.'"'."\r\n\r\n"; $this->textheader .= '--'.$this->textboundary."\r\n"; $this->textheader .= 'Content-Type: text/plain; charset="'.$this->charset.'"'."\r\n"; $this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\r\n\r\n"; $this->textheader .= strip_tags($text)."\r\n\r\n"; $this->textheader .= '--'.$this->textboundary."\r\n"; $this->textheader .= 'Content-Type: text/html; charset="'.$this->charset.'"'."\r\n"; $this->textheader .= 'Content-Transfer-Encoding: quoted-printable'."\r\n\r\n"; $this->textheader .= ''.$text.''."\r\n\r\n"; $this->textheader .= '--'.$this->textboundary.'--'."\r\n\r\n"; } // Funktion zum anhängen für Attachments in der Email function attachment($datei) { // Überprüfen ob File Existiert if(is_file($datei)) { // Header für Attachment erzeugen $attachment_header = '--'.$this->emailboundary."\r\n" ; $attachment_header .= 'Content-Type: application/octet-stream; name="'.basename($datei).'"'."\r\n"; $attachment_header .= 'Content-Transfer-Encoding: base64'."\r\n"; $attachment_header .= 'Content-Disposition: attachment; filename="'.basename($datei).'"'."\r\n\r\n"; // Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile // aufteilen $file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei)); $file['inhalt'] = base64_encode($file['inhalt']); $file['inhalt'] = chunk_split($file['inhalt'],72); // Attachment mit Header in der Klassenvariable speichern $this->attachment[] = $attachment_header.$file['inhalt']."\r\n"; } else { die(' Le fichier "'.$datei.'" n existe pas'."\r\n"); } } // Funktion zum erstellen des Kompletten Headers der Email // Senden der Email function send() { $this->makeMimeMail(); $header = $this->emailheader; // Überprüfen ob Attachments angehängt wurden if(count($this->attachment)>0) { $header .= 'Content-Type: multipart/mixed; boundary="'.$this->emailboundary.'"'."\r\n\r\n"; $header .= '--'.$this->emailboundary."\r\n"; $header .= $this->textheader; if(count($this->attachment) > 0) $header .= implode("",$this->attachment); $header .= '--'.$this->emailboundary.'--'; } else { $header .= $this->textheader; } // Versenden der Mail mail("$this->empfaenger",$this->betreff,"",$header); $this->deletememory(); } // Diese Funktion ist nur zum testen function deletememory() { unset($this->emailheader); unset($this->textheader); unset($this->attachment); } } ?>

[/cpp]

et pour l’utilisation :

[cpp]$mail = new sendmail();
$mail->SetCharSet(“ISO-8859-1”);
$mail->from(“Service client","client@toto.com”); //exemple
$mail->to(“adresse email”);
$mail->cc(“adresse email”);
$mail->subject(“sujet du mail”);
$mail->text(“texte du mail”);
$mail->attachment(“test.pdf”);
$mail->send();[/cpp]

je ne peux pas changer la classe que j’utilise car elle comporte plusieur fonction que j’utilise
merci comme meme

j’ai essayé de remplacer la fonction attachement a la place de celle sue j’utilise mais ca marche non plus

qui peux m’aider je dois avoir tout boucler pour demain soir alors 'il vous plait