Vraag & Antwoord

Webprogrammeren & scripting

MIME mail probleem

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\n"; // unieke boundary $boundary = uniqid("JWmail_boundary"); // E-mail client aangeven dat bericht alternatieven bevat $headers .= "Content-Type: multipart/alternative" . "; boundary = $boundary\n"; // 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.\n"; // 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."\n"; } foreach ($HTTP_POST_FILES as $key => $value) { if ($value['name'] != "" && $attachment != "attachment") $message_tekst .= "Bestand upload:".$upload_dir.$value['name']."\n"; } $headers .= "--$boundary\r\n" . "Content-Type: text/plain; charset=ISO-8859-1\r\n" . "Content-Transfer-Encoding: base64\r\n\r\n"; $headers .= chunk_split(base64_encode($message_tekst)); // HTML mail opstellen $message_html = "<body bgcolor=".$bgcolor." text='#000000'>\n"; $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>\n"; 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>\n"; } 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>\n"; } } 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>\n"; } $message_html .= "</table></center></body>\n"; $headers .= "--".$boundary."\r\n" . "Content-Type: text/html; charset=ISO-8859-1\r\n" . "Content-Transfer-Encoding: base64\r\n\r\n"; $headers .= chunk_split(base64_encode($message_html)); $headers .= "--" . $boundary . "\n"; if ($attachment == "attachment" && $bestand_meesturen) { foreach ($HTTP_POST_FILES as $key => $value) { if ($value['name'] != "") { $headers .= "Content-Type: ".$value['type'].";\n\t name=\"".$upload_path.$value['name']."\"\n"; $headers .= "Content-Transfer-Encoding: base64\n"; $headers .= "Content-Disposition: attachment;\n\t filename=\"".$value['name']."\"\n\n"; // 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."\n"; $headers .= "--" . $boundary . "\n"; } } } // 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

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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