1. #1
    Noizz.be's Avatar
    Registered
    07/01/04
    Location
    Schoten
    Posts
    1,238
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0

    PHP: Probleem met mail() en MIME

    Hoi

    de bedoeling is devolgende: we geven een fuif, en via onze website kan je de flyer + aangepaste email naar vrienden sturen.

    Ik heb wel een probleem met MIME (denk ik)

    PHP code van het bestand dat de flyer verstuurd:
    PHP Code:
    //email opstellen en versturen
    $boundary '-----='.md5(uniqid(rand()));

    //prent toevoegen
    $path "images/pics/Flyer_small.jpg";
    $fp fopen($path'r');
    do
    {
        
    $data fread($fp8192);
        if (
    strlen($data) == 0) break;
        
    $content .= $data;
    } while (
    true);
    $content_encode chunk_split(base64_encode($content));
    $message .= $content_encode."\n";
    $message .= "--".$boundary."\n";

    //headers voor de email
    $headers  "From: \"info\"<info@noizz.be>\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
    $message .= "Content-Disposition: inline; filename=\"Flyer_small.jpg\"\n\n";
                    
    mail($mail'Locally Funky - xx Mei 2005 - House/Techno Event'$message$headers);
                        
    echo 
    "The flyer has been send to <b>$mail</b>"
    Dit is het resultaat van de email (enkel de headers):
    Code:
    From - Thu Mar 31 11:29:14 2005
    X-Account-Key: account2
    X-UIDL: UID117-1099138901
    X-Mozilla-Status: 0001
    X-Mozilla-Status2: 10000000
    Return-Path: <proftpd@benesol.be>
    Delivered-To: info@noizz.be
    Received: from localhost (localhost [127.0.0.1])
    	by benesol.be (Postfix) with ESMTP id 15C2F3A805C
    	for <info@noizz.be>; Thu, 31 Mar 2005 11:26:22 +0200 (CEST)
    Received: from benesol.be ([127.0.0.1])
     by localhost (venus [127.0.0.1]) (amavisd-new, port 10024) with ESMTP
     id 32277-05 for <info@noizz.be>; Thu, 31 Mar 2005 11:26:13 +0200 (CEST)
    Received: by benesol.be (Postfix, from userid 1001)
    	id 2B1A53A800D; Thu, 31 Mar 2005 11:26:13 +0200 (CEST)
    To: info@noizz.be
    Subject: Locally Funky - xx Mei 2005 - House/Techno Event
    From: "info" <info@noizz.be>
    MIME-Version: 1.0
    Content-Type: multipart/mixed; boundary="-----=609a62c02d11e1b84332d0ec7f8ea7c8"
    Message-Id: <20050331092613.2B1A53A800D@benesol.be>
    Date: Thu, 31 Mar 2005 11:26:13 +0200 (CEST)
    X-Virus-Scanned: by amavisd-new at benesol.be
    X-Amavis-Alert: BAD HEADER MIME error: error: part did not end with expected boundary
    
    ------ hier staan allemaal rare tekens (wss gecodeerde bestand van de flyer) -----
    
    -------=609a62c02d11e1b84332d0ec7f8ea7c8
    Content-Disposition: inline; filename="Flyer_small.jpg"
    Zoals je kan zien komt er een "BAD HEADER MIME error". Aangezien ik hier enorm, maar dan enorm weinig van weet ben ik het gaan opzoeken maar ben ik niet bepaald wijzer geworden. Zouden jullie mij kunnnen helpen aub?

    Alvast bedankt
    Noizz

    PS: code komt van hier
    | www.noizz.be | I Love Techno | Vinylbeats page: click here | LOCALLY FUNKY |
    no votes  

  2. #2
    frenzal's Avatar
    Registered
    20/12/02
    Location
    Antwerpen
    Posts
    1,319
    iTrader
    8 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/1
    ik raad u de phpmailer class aan: http://phpmailer.sourceforge.net/
    makkelijk in gebruik en moet je zelf niet prutsen met headers en dergelijke, je kunt je attachment dan toevoegen met slechts 1 regel code
    Last edited by frenzal; 31-03-2005 at 16:26. Reason: typo
    no votes  

  3. #3
    Col.Kurtz's Avatar
    Registered
    24/06/04
    Posts
    541
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Of een mail class van pear :
    http://pear.php.net/packages.php?catpid=14&catname=Mail

    Als je pear neemt kan je ook gebruik maken van database, quickform, table, ... classes (allemaal zéééér handig !)

    Als je enkel wilt mailen zou ik voor phpmailer gaan
    (pear installatie/configuratie is lastig als beginneling)
    no votes  

  4. #4
    Noizz.be's Avatar
    Registered
    07/01/04
    Location
    Schoten
    Posts
    1,238
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    allemaal zeer vriendelijk, maar ik zien da ni zitten van zo'n dingen.

    Kzou gewoon willen weten wa ik fout gedaan heb, code ziet er niet zo ingewikkeld uit. Alleh, ik begrijp ze als het ware, maar ik zit gewoon te prutsen met die MIME

    Dus gelieve daar wat info omtred te geven.

    Noizz
    | www.noizz.be | I Love Techno | Vinylbeats page: click here | LOCALLY FUNKY |
    no votes  

  5. #5

    Registered
    26/09/02
    Posts
    51
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Er zitten op een paar plaatsen fouten in gelovek:

    $message .= "Content-Disposition: inline; filename=\"Flyer_small.jpg\"\n\n"; hoort niet bij de headers maar in de body.

    Na je boundary moet er staan welk type het is:
    Content-Transfer-Encoding: base64\n
    Content-Disposition: attachment\n
    Content-Type: mime type in jouw geval image/jpeg; name=filenaam\n\n
    hier komt je base encoded image (met 2 newlines achter, dus niet een)
    boundary opnieuw

    ik geloof dat je de laatste boundary kan weglaten maar ben niet zeker
    no votes  

  6. #6
    Noizz.be's Avatar
    Registered
    07/01/04
    Location
    Schoten
    Posts
    1,238
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    hey

    we geraken al verder, maar nog niet af.

    bij volgende PHP code:

    PHP Code:

    //email opstellen en versturen
    $boundary '-----='.md5(uniqid(rand()));

    $message .= "Content-Disposition: inline; filename=\"Flyer_small.jpg\"\n\n";

    //prent toevoegen
    $path "images/pics/Flyer_small.jpg";
    $fp fopen($path'r');
    do
    {
        
    $data fread($fp8192);
        if (
    strlen($data) == 0) break;
        
    $content .= $data;
    } while (
    true);
    $content_encode chunk_split(base64_encode($content));
    $message .= $content_encode."\n\n";
    //headers voor de email
    $headers  "From: \"info\"<info@noizz.be>\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: image/jpeg; filename=\"Flyer_small.jpg\"\n\n";
    $headers .= "boundary=\"$boundary\"\n";
    $headers .= "Content-Transfer-Encoding: base64\n";
    $headers .= "Content-Disposition: attachment\n";
        
    mail($mail'Locally Funky - xx Mei 2005 - House/Techno Event'$message$headers); 
    krijg ik een email toegestuurd met en attachment: "attachment.jpeg". Probeer ik deze te openen dan geeft deze een error. "can't open file". Bovendien is het prentje niet te zien in de email, buiten een icoontje dat een "fout prentje" laat zien.

    code achter de email:
    Code:
    From: "info" <info@noizz.be>
    MIME-Version: 1.0
    Content-Type: image/jpeg; filename="Flyer_small.jpg"
    Message-Id: <20050404105037.9DCF347C0A3@benesol.be>
    Date: Mon,  4 Apr 2005 12:50:37 +0200 (CEST)
    X-Virus-Scanned: by amavisd-new at benesol.be
    
    boundary="-----=928b30e98352b0e3ba0643683afe6732"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment
    
    
    Content-Disposition: inline; filename="Flyer_small.jpg"
    
    /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/b
    AIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgIC
    AwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
    AwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAlgBqAwERAAIRAQMRAf/EANYAAAEEAgMBAAAAAAAAAAAA
    AAcEBQYIAAMBAgkKAQAABQUBAAAAAAAAAAAAAAAABQYHCAEDBAkKAhAAAAYBAgMEBQgFBwYPAAAA
    AQIDBAUGBxEIABITITEUCUFRYZEVcaHRIjJSFhexQjNTJPCB4WKyIzXBgtI0NlbxcpKiQ2PTVGQl..... (HIER DE REST VAN DE BASE64 CODE)
    ...
    ...
    ...UXv2TC4J/5Pf3ftNxXqete39fTSUw935y32wwlrbdwWFv2SjWPW0+7UwAfvdva+5oD0HT8/0ddU
    dyU8uTmy9W1RDqMfhHNE0mrp4yePPDJmWIdaQXaq8p5Rw9BY7vmAigOhU5yFNqUNk/jSHi9vwPFQ
    8LlE/FVs4hbSAMu+HYNjUdVYVWnQqD8xqO+aN82XuTlgVynfk7oNKiTed9fhXfWtNQLncfuTf8on
    /acLnRZ0/DWdRz+4N3/fJ3ev7fA1Xp+Gv//Z
    En daar stopt de email.

    Kunnen jullie mij verder helpen?
    Alvast bedankt
    Noizz
    | www.noizz.be | I Love Techno | Vinylbeats page: click here | LOCALLY FUNKY |
    no votes  

  7. #7

    Registered
    26/09/02
    Posts
    51
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Zoals ik zei, het moet in de body

    Header code:

    PHP Code:
    //headers voor de email
    $headers  "From: \"info\"<info@noizz.be>\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\""
    body code:

    PHP Code:
    $message .= $boundary."\n";
    $message .= "Content-Transfer-Encoding: base64\n";
    $message .= "Content-Type: image/jpeg\n";
    $message .= "Content-Disposition: inline; filename=\"Flyer_small.jpg\"\n\n"
    $message .= encoded image file 
    no votes  

  8. #8
    Noizz.be's Avatar
    Registered
    07/01/04
    Location
    Schoten
    Posts
    1,238
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Het wil nog steeds niet werken

    PHP Code:
    //email opstellen en versturen
    $boundary '-----='.md5(uniqid(rand()));

    $message .= $boundary."\n";
    $message .= "Content-Transfer-Encoding: base64\n";
    $message .= "Content-Type: image/jpeg;\n";
    $message .= "Content-Disposition: inline; filename=\"Flyer_small.jpg\"\n\n";

    //prent toevoegen
    $path "images/pics/Flyer_small.jpg";
    $fp fopen($path'r');
    do
    {
        
    $data fread($fp8192);
        if (
    strlen($data) == 0) break;
        
    $content .= $data;
    } while (
    true);
    $content_encode chunk_split(base64_encode($content));
    $message .= $content_encode."\n\n";

    //headers voor de email
    $headers  "From: \"info\"<info@noizz.be>\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
            
    mail($mail'Locally Funky - xx Mei 2005 - House/Techno Event'$message$headers); 
    ik krijg volgende error:

    Code:
    To: info@noizz.be
    Subject: Locally Funky - xx Mei 2005 - House/Techno Event
    From: "info" <info@noizz.be>
    MIME-Version: 1.0
    Content-Type: multipart/mixed; boundary="-----=a6616cbe58283f94cfc7ed6cb267556e"
    Message-Id: <20050404164326.34BE63A801A@benesol.be>
    Date: Mon,  4 Apr 2005 18:43:26 +0200 (CEST)
    X-Virus-Scanned: by amavisd-new at benesol.be
    X-Amavis-Alert: BAD HEADER MIME error: error: unexpected end of preamble
    
    -----=a6616cbe58283f94cfc7ed6cb267556e
    Content-Transfer-Encoding: base64
    Content-Type: image/jpeg;
    Content-Disposition: inline; filename="Flyer_small.jpg"
    
    /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/b
    AIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgIC
    AwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
    AwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAlgBqAwERAAIRAQMRAf/EANYAAAEEAgMBAAAAAAAAAAAA
    AAcEBQYIAAMBAgkKAQAABQUBAAAAAAAAAAAAAAAABQYHCAEDBAkKAhAAAAYBAgMEBQgFBwYPAAAA
    AQIDBAUGBxEIABITITEUCUFRYZEVcaHRIjJSFhexQjNTJPCB4WKyIzXBgtI0NlbxcpKiQ2PTVGQl
    Noizz
    | www.noizz.be | I Love Techno | Vinylbeats page: click here | LOCALLY FUNKY |
    no votes  

  9. #9
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    En als je zou luisteren naar de goede raad van anderen en niet steeds het wiel opnieuw wil uitvinden (wat tijdrovend is, maar uiteraard ook wel leerrijk èn frustrerend tegelijkertijd kan zijn) dan werkte het al. Het is maar de vraag wat je wil, ofwel wil je alles met de hand doen en dan zal je je moeten wenden tot de RFCs, die moeten doornemen en dan tenslotte vaststellen dat je hetzelfde resultaat ook in 15 minuten kon bekomen door bestaande (tried & tested) componenten te gebruiken, zij het via PEAR of via een andere gekende PHP klasse.
    Last edited by dJeez; 04-04-2005 at 23:20.
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

  10. #10
    S3cT0r's Avatar
    Registered
    09/03/03
    Location
    Kruibeke
    Posts
    111
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    ik zou je wel helpen als ik kon Noizz, want doe het zelvers zijn nog altijd de besten
    Spijtig genoeg ken ik bitter weinig van hoe mail() werkt in PHP en de e-mail standaard, dus ofwel kan je het op een ander (php) forum gaan vragen, ofwel kan je de RFC doorlezen (ik _haat_ RFC's).

    //Succes
    (post het wel als je de fout gevonden hebt)
    no votes  

  11. #11
    Noizz.be's Avatar
    Registered
    07/01/04
    Location
    Schoten
    Posts
    1,238
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    bwoa, ik zen ni voor die voorgekauwde dingen. Dan doe ik het liever zelf en dan leer ik nog wat bij. Bovendien bieden die dingen 19028023 functies waarvan ik slecht 1 "eenvoudige" van moet hebben

    Noizz

    Ik zal nekeer op een ander forum gaan aankloppen
    | www.noizz.be | I Love Techno | Vinylbeats page: click here | LOCALLY FUNKY |
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in