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

MIME mail probleem

Anoniem
GameSurfer
2 antwoorden
  • Beste mensen,

    Met de onderstaande code wil ik een bericht versturen. Het bericht heeft een tekst en een html gedeelte. Dit werkt allemaal goed. Nu wilde ik er ook attachments mee kunnen versturen. Ook dit doet ie.
    Het probleem is dat behalve het bestand dat als attachment meegestuurd moet worden er ook een *.txt bestand van 1 byte wordt meegestuurd waar niets in staat. Hoe krijg ik dit weg? Ik zie het even niet.
    Bedankt alvast voor het meedenken.




    // E-mail bericht opstellen

    $headers = $mailfrom;

    // MIME version 1.0 specificeren
    $headers .= "MIME-Version: 1.0
    ";

    // unieke boundary
    $boundary = uniqid("JWmail_boundary");

    // E-mail client aangeven dat bericht alternatieven bevat
    $headers .= "Content-Type: multipart/alternative" . "; boundary = $boundary
    ";

    // Bericht voor e-mail clients die geen MIME kunnen lezen
    $headers .= "Dit is een MIME-gecodeerd bericht! De inhoud van het bericht is bijgevoegd als attachment.
    ";

    // Tekst versie van e-mail bericht opmaken

    foreach ($HTTP_POST_VARS as $key => $value)
    {
    $key = str_replace("_empty"," *",$key);
    $key = str_replace("_postcode","",$key);
    $key = str_replace("_email","",$key);
    $key = str_replace("_telefoon","",$key);
    $key = str_replace("_sendername","",$key);
    $key = str_replace("_senderemail","",$key);
    if (strtolower($key) != "config" && strtolower($key) != "onderwerp" && strtolower($key) != "submit" && strtolower($key) != "button")
    $message_tekst .= $key.": ".$value."
    ";
    }

    foreach ($HTTP_POST_FILES as $key => $value)
    {
    if ($value['name'] != "" && $attachment != "attachment")
    $message_tekst .= "Bestand upload:".$upload_dir.$value['name']."
    ";
    }

    $headers .= "–$boundary
    " . "Content-Type: text/plain; charset=ISO-8859-1
    " . "Content-Transfer-Encoding: base64

    ";
    $headers .= chunk_split(base64_encode($message_tekst));

    // HTML mail opstellen

    $message_html = "<body bgcolor=".$bgcolor." text='#000000'>
    ";
    $message_html .= "<center><table border=0 style='font-family:".$teksttype.";color:#".$tekstkleur.";font-size:12px;border:".$border."px solid #".$borderkleur.";' width=".$breedte_tabel." cellspacing=0 cellpadding=3>
    ";

    foreach ($HTTP_POST_VARS as $key => $value)
    {
    // $key = str_replace("_empty"," *",$key);
    $key = str_replace("_postcode","",$key);
    $key = str_replace("_email","",$key);
    $key = str_replace("_telefoon","",$key);
    $key = str_replace("_sendername","",$key);
    $key = str_replace("_senderemail","",$key);
    if (strtolower($key) != "config" && strtolower($key) != "onderwerp" && strtolower($key) != "submit" && strtolower($key) != "button")
    {
    if (strpos($key, "_empty"))
    {
    $key = str_replace("_empty","", $key);
    $message_html .= "<tr><td bgcolor=#".$bgcolor_tabel_links." align='right' nowrap><b>".$key.":</b></td><td bgcolor=#".$bgcolor_tabel_links."><sup>*</sup></td><td bgcolor=#".$bgcolor_tabel_rechts." width='100%'>".$value."</td></tr>
    ";
    }
    else
    $message_html .= "<tr><td bgcolor=#".$bgcolor_tabel_links." align='right' nowrap><b>".$key.":</b></td><td bgcolor=#".$bgcolor_tabel_links.">&</td><td bgcolor=#".$bgcolor_tabel_rechts." width='100%'>".$value."</td></tr>
    ";
    }
    }

    foreach ($HTTP_POST_FILES as $key => $value)
    {
    if ($value['name'] != "" && $attachment != "attachment")
    $message_html .= "<tr><td bgcolor=#".$bgcolor_tabel_links." align='right' nowrap><b>Bestand upload:</b></td><td bgcolor=#".$bgcolor_tabel_links.">&</td><td bgcolor=#".$bgcolor_tabel_rechts." width='100%'>".$upload_dir.$value['name']."</td></tr>
    ";
    }

    $message_html .= "</table></center></body>
    ";

    $headers .= "–".$boundary."
    " . "Content-Type: text/html; charset=ISO-8859-1
    " . "Content-Transfer-Encoding: base64

    ";
    $headers .= chunk_split(base64_encode($message_html));

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

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

    ";

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


    // mail versturen
    mail($mailto, $onderwerp, "", $headers);[size=9][/size][size=12][/size]



























  • En als je het niet verstuurd als html, maar gewoon als normaal mail zonder opmaak e.d. Heeft deze dan ook die extra attachment?

Beantwoord deze vraag

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