probleem met Mail/mime

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Elmer Kouwenberg

Elmer Kouwenberg

30/05/2008 14:12:00
Quote Anchor link
Hallo,

Ik heb een script geschreven dat een html form verwerkt tot pdf-document en die vervolgens mailt naar een adres. De mail komt vervolgens aan met het pdf-doucment als attachement.

Probleem:
Als ik mijn mail online check werkt alles voorbeeldig, maar als de mail aankomt in Outlook is mail en attachement allemaal in plain text. Hoe kan ik dit oplossen.

Vereenvoudigd voorbeeld van mijn script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?
                   
if(isset($_POST['Submit']))
{
    
    
    $html='<center><h2><font color="#FF0000">A A N M E L D I N G S F O R M U L I E R</font></h2><p></center>';    
    $html.='<table border="0">';        
    $html.='<tr><td>Ik meld mij aan voor:</td><td valign="top">'.$aanmld.'</td></tr>';    
    $html.='<tr><td>Naam:</td><td>'.$naam.'</td></tr></table>';
    
    require('html2fpdf.php');
    
    $pdf=new HTML2FPDF();
    $pdf->AddPage();
    $pdf->WriteHTML($html);        
    $pdfcontent = $pdf->Output("aanmelding.pdf", "S");
    
    require_once('Mail.php');
    require_once('Mail/mime.php');
    
    // email address of the recipient
    // $to = "[email protected]";

    $to = "[email protected]";
    
    // email address of the sender
    $from = $email;
    
    // subject of the email
    $subject = "Aanmelding van ".$naam;
    
    // email header format complies the PEAR's Mail class
    // this header includes sender's email and subject

    $headers = array('From' => $from,
    'Subject' => $subject);
    
    // We will send this email as HTML format
        
    $htmlbody = '<html><body bgcolor="#ffffff"><center>';
    $htmlbody.='<table><tr><td colspan="2"><b>INSIGHTOROUT AANMELDING</b></td></tr>';
    $htmlbody.='<tr><td>Van:</td><td>'.$naam.'</td></tr></table>';    
    $htmlbody.='Zie attachement voor verdere aanmelding<p>';        
    $htmlbody.='</body></html>';
    
    // create a new instance of the Mail_Mime class
    $mime = new Mail_Mime();
    
    // set HTML content
    $mime->setHtmlBody($htmlbody);
    
    // IMPORTANT: add pdf content as attachment
    $mime->addAttachment($pdfcontent, 'application/pdf', 'aanmelding.pdf', false, 'base64');

        // build email message and save it in $body
    $body = $mime->get();
    
    // build header
    $hdrs = $mime->headers($headers);
    
    // create Mail instance that will be used to send email later
    $mail = &Mail::factory('mail');
    
    // Sending the email, according to the address in $to,
    // the email headers in $hdrs,
    // and the message body in $body.

    $mail->send($to, $hdrs, $body);
    
    echo '<html><body><center><h2><font color="#FF0000">Bedankt voor de aanmelding!</font></h2></center></body></html><p>';

}


?>
 
PHP hulp

PHP hulp

23/12/2024 04:53:52
 
- SanThe -

- SanThe -

30/05/2008 14:17:00
Quote Anchor link
Zo te zien is jouw html geen (valid) html.
 
Elmer Kouwenberg

Elmer Kouwenberg

30/05/2008 14:25:00
Quote Anchor link
Bedoel je het HTML dat verwerkt wordt tot pdf-document?
 
- SanThe -

- SanThe -

30/05/2008 14:30:00
Quote Anchor link
Als je html in een mailtje stopt moet het wel volledige html zijn en niet half.

$htmlbody = '<html><body ...........
Daar mist bv. de <head> en de <title> om maar iets te noemen.

Edit: Typo.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Elmer Kouwenberg

Elmer Kouwenberg

30/05/2008 14:34:00
Quote Anchor link
Nee, dat is het helaas niet. Ik heb het ook geprobeerd met alleen een text body, maar heb exact hetzelfde probllem. Dus:

$text_body = <<<_TXT_
INSIGHTOROUT AANMELDING\n
Van: $naam\n
Straat: $adres\n
Postcode: $postcode $plaats\n
Email: $email\n
Tel: $tel\n
Mobiel: $mobiel\n\n
Zie attachement voor verdere aanmelding\n

_TXT_;


$mime->setTXTBody($text_body);
 
- SanThe -

- SanThe -

30/05/2008 14:38:00
Quote Anchor link
Maar tekst is altijd plain/text. Dat is nooit html. Misschien begrijp ik je verkeerd hoor.
 
Elmer Kouwenberg

Elmer Kouwenberg

30/05/2008 14:44:00
Quote Anchor link
Ja, dat is zo.. Het probleem zit 'm ook meer in die attachement. Die komt aan in een een tekstfile met plain text erin. Als ik mijn mail online check (bij het e-mailprogramma van mijn provider) komt wel gewoon de mail binnen met het pdf-document als attachement.
 
- SanThe -

- SanThe -

30/05/2008 14:55:00
Quote Anchor link
Dan zijn waarschijnlijk de headers van je mail niet correct.
 
Elmer Kouwenberg

Elmer Kouwenberg

30/05/2008 15:04:00
Quote Anchor link
Nou, het is eigenlijk nog raarder. Als ik het formulier (en scripts) op de server zet die ik zelf gebruik, werkt wel alles zoals het hoort. Maar het is bedoelt voor een klant van mij, en het staat nu dus op een hun server.

M.a.w. het is mij een groot raadsel!
 
- SanThe -

- SanThe -

30/05/2008 15:10:00
Quote Anchor link
Dan heb je misschien last van versie verschillen in de software die is geïnstalleerd? Anders heb ik ook geen idee meer.
 
Elmer Kouwenberg

Elmer Kouwenberg

30/05/2008 15:12:00
Quote Anchor link
Tja, zou kunnen... bedankt i.i.g. voor het meedenken zover
 
Elmer Kouwenberg

Elmer Kouwenberg

30/05/2008 15:57:00
Quote Anchor link
Jeah! Ik heb de oplossing gevonden door even te Googlen. Waarneer je deze regel in het script

$mime = new Mail_mime();

vervangt voor deze

$mime = new Mail_mime("\n");

werkt alles goed!
 
- SanThe -

- SanThe -

30/05/2008 16:12:00
Quote Anchor link
Dat is geweldig. Ik ben blij dat het nu werkt.

Succes verder.

Let in het vervolg even op onze niet bumpen regel.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.