Avatar billede soelle Nybegynder
17. juni 2008 - 23:15 Der er 2 kommentarer og
1 løsning

Problem med attach i email

Jeg forsøger at sende en PDF fil ud på 1,5 Mb som attachment til en e-mail. Filen ligger fast på serveren og virker fint når man kalder den direkte. Når jeg forsøger at sende den som attachment til en e-mail ender jeg med en blank side i firefox og en "siden kan ikke vises" i Internet Explorer. Jeg modtager godt nok mailen og med filen vedhæftet den virker bare ikke når jeg forsøger at åbne den.

Hvis jeg prøver med en mindre fil virker det hele fint.

Jeg prøvet via alm. php mail og med phpmailer men det er samme resultat.

Jeg har forsøgt at ændre server-timeouts osv. uden held. Hvad kan jeg prøve?
Avatar billede coderdk Praktikant
17. juni 2008 - 23:59 #1
Vi skal nok se noget kode :P
Avatar billede soelle Nybegynder
18. juni 2008 - 08:52 #2
Her er koden fra phpmailer som skrevet virker det hele fint med små filer.
$attach="../usrfiles/Nyhedsbrev.pdf";
require("../includes/class.phpmailer.php");
$mail = new phpmailer();
$mail->isMail();
$mail->SetLanguage("da", "./language/");
$mail->isHTML(true);
$mail->From = "test@test.dk";
$mail->FromName = "Testmail";
$mail->Subject = $_POST['emne'];
$mail->Body="<body style=\"font-family:Verdana, Verdana, Geneva, sans-serif; font-size:12px; color:#000000;\">\n";
$mail->Body .= nl2br(utf8_encode($_POST['besked']));
$mail->Body .= "</body>";
$mail->Body=utf8_decode($mail->Body);
$mail->AddAttachment($attach); 


$mail->AddAddress("mail@test.dk");

// send mail
$mail_status = $mail->Send();

    if ($mail_status) {
        echo "<p>The email was sent.</p>";

    } else {
    echo "<p>There was an error sending the mail.</p>";

    }


Her er en anden test, som giver samme resultat

$to = "mail@test.dk";
        $from = "John-Smith <john.smith@domain.com>";
        $subject = "Here is your attachment";
        $headers = "From: test@test.dk";
        $attach="../usrfiles/Nyhedsbrev.pdf";
           
        $fileatt = $attach;
        $fileatttype = "application/pdf";
        $fileattname = "Nyhedsbrev.pdf";
   

       
        $file = fopen( $fileatt, 'rb' );
        $data = fread( $file, filesize( $fileatt ) );
        fclose( $file );
       
                $semi_rand = md5( time() );
        $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
   
        $headers .= "\nMIME-Version: 1.0\n" .
                    "Content-Type: multipart/mixed;\n" .
                    " boundary=\"{$mime_boundary}\"";
   
        $message = "This is a multi-part message in MIME format.\n\n" .
                "--{$mime_boundary}\n" .
                "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
                "Content-Transfer-Encoding: 7bit\n\n" .
                $message . "\n\n";
   
        $data = chunk_split( base64_encode( $data ) );
               
        $message .= "--{$mime_boundary}\n" .
                "Content-Type: {$fileatttype};\n" .
                " name=\"{$fileattname}\"\n" .
                "Content-Disposition: attachment;\n" .
                " filename=\"{$fileattname}\"\n" .
                "Content-Transfer-Encoding: base64\n\n" .
                $data . "\n\n" .
                "--{$mime_boundary}--\n";


        if( mail( $to, $subject, $message, $headers ) ) {
       
            echo "<p>The email was sent.</p>";
       
        }
        else {
       
            echo "<p>There was an error sending the mail.</p>";
       
        }
Avatar billede soelle Nybegynder
26. juni 2008 - 10:42 #3
lukker
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