Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Attachment email PHP

GameSurfer
2 antwoorden
  • In mijn mail script kan ik nu meerdere files uploaden.
    Nu moeten ze nog als attachment doorgestuurd kunnen worden.
    Met 1 bestand werkt dit goed. Alleen met meerdere bestanden niet.
    Alle bestanden worden op de juiste manier geupload (gechecked).
    In het volgende loopje wordt de header gemaakt voor de meerdere attachments.

    In de mail krijg ik elke keer 1 attachment te zien. Ipv. 2 of 3.
    De inhoud van de andere bestanden wordt blijkbaar wel meegestuurd als ik naar de afmeting van het attachment kijk, die is even groot als alle attachments bij elkaar. Alleen in de e-mail staat dus maar 1 bestand.
    Doe ik iets fout met de boundary!?


    if ($attachment == "attachment")
    {
    $headers = $mailfrom;
    $headers .= "MIME-Version: 1.0
    ";
    $headers .= "Content-Type: multipart/mixed;
    ";
    $boundary = strtoupper(md5(uniqid(time())));
    $headers .= "\tboundary= " . $boundary . "

    ";
    $headers .= "–" . $boundary . "
    ";
    $headers .= "Content-Type: text/html;
    ";
    $headers .= "\tcharset="iso-8859-1"
    ";
    $headers .= "Content-Transfer-Encoding: quoted-printable

    ";
    $headers .= $message . "

    ";
    $headers .= "–" . $boundary . "
    ";
    foreach ($HTTP_POST_FILES as $key => $value)
    {
    if ($value['name'] != "")
    {
    $headers .= "Content-Type: ".$value['type'].";
    \t name="".$upload_dir.$value['name'].""
    ";
    $headers .= "Content-Transfer-Encoding: base64
    ";
    $headers .= "Content-Disposition: attachment;
    \t filename="".$value['name'].""

    ";
    // bestand inlezen en bij mail voegen
    $fp = fopen($upload_dir.$value['name'],"r");
    $file_content = fread($fp,filesize($upload_dir.$value['name']));
    fclose($fp);
    $file_content = chunk_split(base64_encode($file_content));
    $headers .= $file_content."

    ";
    $headers .= "–" . $boundary . "–";
    }
    }

    sendmail($mailto, $onderwerp, "", $headers);
    }
  • Volgens mij heb je hier een typo/per ongelukje:

    $headers .= "–" . $boundary . "–";

    (aan het einde.)

    volgens mij moet dat zijn:

    $headers .= "–" . $boundary . "

    ";

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.