Avatar billede limemedia Nybegynder
02. april 2004 - 15:32 Der er 3 kommentarer og
1 løsning

Ekstra attachment ved mime mails

Jeg har hurtigt kodet følgende for at kunne sende en mail med én vedhæftning - når mailen ankommer (både Outlook og Thunderbird) er der en ekstra attachment indeholdende indholdet af mailen

Udskifter jeg linien
$send = mail($_POST['toEmail'],$_POST['subject'],stripslashes($_POST['emailContent']),$message);
med
$send = mail($_POST['toEmail'],$_POST['subject'],'',$message);

Er den vedhæftede fil der stadig, dog uden indhold. Hvordan undgår jeg denne ekstra vedhæftede fil ?

Min kode
<?php
    $mimeBoundary = md5(uniqid(mt_rand(), true));;

#    $message = "To: ".$_POST['toEmail']."\r\n";
    $message = "From: ".$_POST['fromName']. " <".$_POST['fromEmail'].">\r\n";
    $message .= "Bcc: ".$_POST['bccEmail']."\r\n";
    $message .= "Reply-to: ".$_POST['replyEmail']."\r\n";
    $message .= "MIME-Version: 1.0\r\n";
    $message .= "Content-type: multipart/mixed; boundary=\"".$mimeBoundary."\"\r\n";
    $message .= "This is a multi-part message in MIME format.\r\n\r\n";
    $message .= "--".$mimeBoundary."\r\n";
    $message .= "Content-type: text/plain; charset=\"iso-8859-1\"\r\n";
    $message .= "Content-Transfer-Encoding:7bit\r\n\r\n";
    $message .= stripslashes($_POST['emailContent'])."\r\n\r\n";

    if (is_uploaded_file($_FILES['pdf']['tmp_name'])) {
        $fileContent = file_get_contents($_FILES['pdf']['tmp_name']);
        $fileContent = base64_encode($fileContent);
        $fileContent = chunk_split($fileContent);

        $message .= "--".$mimeBoundary."\r\n";
        $message .= "Content-type: ".$_FILES['pdf']['type']."; name=\"".$_FILES['pdf']['name']."\"\r\n";
        $message .= "Content-Transfer-Encoding:base64\r\n";
        $message .= "Content-Disposition: attachment; filename=\"".$_FILES['pdf']['name']."\"\r\n\r\n";
        $message .= $fileContent."\r\n\r\n";
    }
    $message .= "--".$mimeBoundary."\r\n";

    $send = mail($_POST['toEmail'],$_POST['subject'],stripslashes($_POST['emailContent']),$message);
    echo "sendt !";
?>
Avatar billede hmortensen Nybegynder
02. april 2004 - 16:55 #1
Her er et library, som kan sende 1-N antal filer med:

http://www.nirvani.net/software/lib_multipart_mime_email/lib_multipart_mime_email-1.0.0.php.asc

(Har ik prøvet det)
Avatar billede limemedia Nybegynder
02. april 2004 - 16:57 #2
der findes mange libraries, en af de bedre er lavet af Richard Heyes - men i netop dette tilfælde ønsker jeg ikke et library med alt for meget overskydende kode men et afgrænset eksempel.
Avatar billede limemedia Nybegynder
06. april 2004 - 14:00 #3
.
Avatar billede tipsen Nybegynder
12. april 2004 - 13:49 #4
Jeg skal jo liiige foreslå PEAR:

http://pear.php.net/package/Mail_Mime

:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester