PHP HTML-mailscript produceert geen HTML-mail

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op een website heb ik een formulier dat door een PHP script als HTML-mail verzonden zou moeten worden. De mail wordt echter als plain text verzonden. In Outlook Express 6 krijg ik dan de HTML-code te zien, bijvoorbeeld: <html><body><b>blabla</b>.............

Ik vermoed dat de fout in het onderstaande stukje code zit:

code:
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
// mail the content
function mail_it($content, $Onderwerp, $Email, $recipient) {
  global $attachuser, $attachtemp, $attachsize, $attachtype;
  $headpart = "";
  $msgpart = "";

  // build message headers
   
  $headpart = "From: $Email\n"; 
  $headpart .= "Reply-To: $Email\n";
  
  if ($attachuser) {
    // create a MIME boundary string
    $boundary = md5(uniqid(time()));

    // add MIME data to the message headers
    $headpart = "MIME-Version:1.0\n";
    $headpart .= "From: $Email\n"; 
    $headpart .= "Reply-To: $Email\n";
    $headpart .= "Content-Type: text/html;\n\tboundary=\"$boundary\"\n";
          
 $msgpart  = "This is a multi-part message in MIME format.\n";
       $msgpart .= "\n--$boundary\n";
    $msgpart .= "Content-Type: text/html\n";
    $msgpart .= "Content-Transfer-Encoding: 8bit\n\n";
    $msgpart .= "$content\n";   
    for($i = 0; $i < count($attachuser); $i++) {
      $msgpart .= "\n--$boundary\n";
      $fname = basename($attachuser[$i]);
      $msgpart .= "Content-Type: $attachtype[$i]; \n\tname=\"$fname\"\n";
      $msgpart .= "Content-Transfer-Encoding: base64\n";
    $msgpart .= "Content-Disposition: attachment; filename=\"$fname\"\n\n";
      $fcontent = fread(fopen($attachtemp[$i], "r"), filesize($attachtemp[$i]));
      $fcontent = chunk_split(base64_encode($fcontent));
      $msgpart .= "$fcontent\n";
    }
    $msgpart .= "\n--$boundary--\n";
  } else {
    $msgpart .= "$content\n";
  }
  if(!mail($recipient, $Onderwerp, $msgpart, $headpart)) {
    delete_temp_files();
    issue_errors("Onbekende fout tijdens verzenden bericht.");
  }
  delete_temp_files();
}


Deze code is onderdeel van het mailscript van Hark's Mailer (gratis).

Wat heb ik zelf geprobeerd?

- Content-Transfer-Encoding wijzigen in base64, 8bit of quoted-printable
- Content-Type wijzigen in text/html
- script op andere server getest
- andere mailaccounts bij verschillende mailproviders getest
- meerdere mailclients getest (ook webmail)
- mail op meerdere PC's binnengehaald
- tientallen instellingen in OE6 gewijzigd

Het vreemde is dat PocoMail 4 de mails wel als HTML herkent, en ook zo weergeeft. In de headers laat PocoMail het volgende zien:

Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Deze headers zijn in OE6 en Thunderbird afwezig.

Wie kan mij op weg helpen? Als er meer gegevens nodig zijn, laat het me weten.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Mijn advies: pak een pakket als phpMailer. Ik heb ondertussen zo veel gezeik gehad met html mails ook echt overal goed laten weergeven, dat ik het tegenwoordig niet meer zelf doe.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • AndriesLouw
  • Registratie: December 2005
  • Laatst online: 19-09 02:45
Dat is ook mijn advies, phpMailer gebruiken. Werkt prima, nog geen klachten gehad, en ik verstuur mailings naar meer dan 80.000 adressen.

Specificaties | AndriesLouw.nl


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Overigens moet je geen <html><body><head> tags gebruiken in mailings maar direct beginnen met je content (hoogstwaarschijnlijk <table>). Scheelt je een hoop gezeik, echt waar :) En inderdaad phpMailer of Zend_Mail gebruiken.

[ Voor 11% gewijzigd door Cartman! op 04-12-2008 09:30 ]


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 21:30

Sebazzz

3dp

De headers horen gescheiden te zijn met \r\n ;)

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

with stupids. Neem PHPMailer. E-mail *wil* je niet zelf uitvogelen.

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor jullie reacties. Ik ga phpMailer proberen.

\r\n had geen effect.
Pagina: 1