Scoutnet vzw

We connect scouts!
Het is momenteel 29 Mrt 2024 0:43

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 2 berichten ] 
Auteur Bericht
BerichtGeplaatst: 25 Mrt 2010 7:18 
Offline
 
 

Geregistreerd: 02 Sep 2008 20:36
Berichten: 17
Woonplaats: La Hulpe
Dears,

I’ve got a small issue with the PHP function mail(). I would like to send a mail with an attachment. It looks nice, except the fact that the attachment the adressee gets in his mail browser (Outlook for instance) remains coded and the owner application (MSWord for instance) cannot decode it

I give you hereunder an extract of my code :


Code:
$objet = $_POST['Objet'];

$corps = nl2br($_POST['Corps']);

$from = $_POST['From'];

$frontiere = md5(uniqid(mt_rand()));

$pj = $_FILES['PJ']['name'];

$typ = $_FILES['PJ']['type'];

$ser = $_FILES['PJ']['tmp_name'];

$tai = $_FILES['PJ']['size'];

$err = $_FILES['PJ']['error'];

       

//html text part

         $message = '--'.$frontiere."\r\n";

         $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\r\n\n";

         $message.= $corps;

         $message.='<hr>Ce message a été envoyé depuis l\'interface WebMail du site http://www.lh1661.be <br>le '.horodate(time()).' par '.$_SESSION['prenom'].' '.$_SESSION['nom'].' ['.sectionlon($_SESSION['section']).']';

         $message.="\r\n\n";

         

// Attached file part

         $message .= '--'.$frontiere."\r\n";

         $message .= 'Content-Type: '.$typ.'; name="'.$pj.'"'."\r\n\n"; 

         $message .= 'Content-Transfer-Encoding:base64'."\r\n\n";

         $message .= 'Content-Disposition:attachement; filename="'.$pj.'"'."\r\n\n";

         $message .= chunk_split(base64_encode(file_get_contents($ser)))."\r\n\n";

 

//end of msg

         $message .='--'.$frontiere.'--'."\r\n";

         
         $sujet = 'Email lh1661.be - '.$objet;

         

         $mailheaders  = 'Mime-Version: 1.0'."\r\n";

         $mailheaders .= 'From: '.$from."\r\n";

         $mailheaders .= 'Reply-To: '.$from."\r\n";

         $mailheaders .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"'."\r\n\n";

         if ($_POST['AR']=='O')

                   $mailheaders .= 'Disposition-Notification-To : '.$_SESSION['mail']."\r\n";

         $mailheaders .= 'X-Mailer: PHP/' . phpversion();  [/b][/b]

 
mail($data['Mail'], $objet, $message, $mailheaders);
 


Thks in advance for your always precious help.

_________________
lh661.be & saintnicolaslahulpe.org Webmaster
Staff d'Unité GCB 16èBW - St-Exupéry


Omhoog
 Profiel  
 
BerichtGeplaatst: 09 Apr 2010 18:00 
Offline
 
 

Geregistreerd: 02 Sep 2008 20:36
Berichten: 17
Woonplaats: La Hulpe
I found the solution...

Hoping it will help you

Code:
$frontiere = '----='.md5(uniqid(mt_rand()));
$frontiere_alt = '----='.md5(uniqid(mt_rand()));
$nom = $_FILES['PJ']['name'];
$typ = $_FILES['PJ']['type'];
$ser = $_FILES['PJ']['tmp_name'];
$tai = $_FILES['PJ']['size'];
$err = $_FILES['PJ']['error'];

$folder = 'PJs/';
$ok=copy($ser,''.$folder.''.$nom);

$fic = fopen($folder.$nom,"rb");
$pj = fread($fic,filesize($folder.''.$nom));
$pj = chunk_split(base64_encode($pj));
fclose($fic);
   
// si serveur microsoft:\n suffit, sinon \r\n
/*if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail))
{
   $ligne = "\r\n";
}
else
{
   $ligne = "\n";
}
*/
$ligne = "\r\n";

// partie texte & htmlhtml
   $message = $ligne."--".$frontiere.$ligne;
   $message .= 'Content-type: multipart/alternative;'.$ligne.' boundary="'.$frontiere_alt.'"'.$ligne;
// partie texte
      $message .= $ligne."--".$frontiere_alt.$ligne;
      
      $message .= 'Content-Type: text/plain; charset="iso-8859-1"'.$ligne;
      $message .= 'Content-Transfer-Encoding: 8bit'.$ligne;
      $message .= $ligne.$corpstxt;
      $message .= $ligne.'Ce message a été envoyé depuis l\'interface WebMail du site www.lh1661.be <br>le '.horodate(time()).' par '.$_SESSION['prenom'].' '.$_SESSION['nom'].' ['.sectionlon($_SESSION['section']).']';
      $message .= $ligne;
//partie html
      $message .= $ligne."--".$frontiere_alt.$ligne;
      
      $message .= 'Content-Type: text/html; charset="iso-8859-1"'.$ligne;
      $message .= 'Content-Transfer-Encoding: 8bit'.$ligne;
      $message .= $ligne.$corps;
      $message .= '<hr>Ce message a été envoyé depuis l\'interface WebMail du site www.lh1661.be.'.$ligne.'le '.horodate(time()).' par '.$_SESSION['prenom'].' '.$_SESSION['nom'].' ['.sectionlon($_SESSION['section']).']';
      $message .= $ligne;
      
   $message .= $ligne."--".$frontiere_alt."--".$ligne;
   
// partie fichier PJ   
   $message .= $ligne.'--'.$frontiere.$ligne;
   
   $message .= 'Content-Type: '.$typ.'; name="'.$nom.'"'.$ligne; 
   $message .= 'Content-Transfer-Encoding: base64'.$ligne;
   $message .= 'Content-Disposition:attachement; filename="'.$nom.'"'.$ligne;
   $message .= $ligne.$pj.$ligne;

//fin du message
   $message .=$ligne.'--'.$frontiere.'--'.$ligne;
   
   $sujet = 'Email lh1661.be - '.$objet;
   
   $mailheaders  = 'Mime-Version: 1.0'.$ligne;
   $mailheaders .= 'From: "'.$from.'" <'.$from.'>'.$ligne;
   $mailheaders .= 'Reply-To: '.$from.$ligne;
   $mailheaders .= 'Content-Type: multipart/mixed;'.$ligne.' boundary="'.$frontiere.'"'.$ligne;
   if ($_POST['AR']=='O')
      $mailheaders .= 'Disposition-Notification-To : '.$_SESSION['mail'].$ligne;
   $mailheaders .= 'X-Mailer: PHP/' . phpversion(); 

_________________
lh661.be & saintnicolaslahulpe.org Webmaster
Staff d'Unité GCB 16èBW - St-Exupéry


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 2 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
cron
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.