[PHP] Multipart mail komt bij diverse providers niet aan *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een stukje code dat o.a. bij een bestelling een html en plaintext orderontvangstbevestiging verstuurd en daarna kan er handmatig nog een orderbevestiging verstuurd worden. Dit wordt allemaal gedaan via php en qmail dat draait op een dedicated flexserver. De laatste tijd hoor ik echter van bepaalde klanten dat zij helemaal geen mail ontvangen hebben. Dit zijn o.a. mensen met een @planet.nl, @home.nl, @wanadoo.nl en een aantal kleinere providers zoals universiteiten. Bij hotmail adressen en andere adressen waarmee ik het getest heb komen ze wel aan. Ik weet niet waardoor dit komt en hoe ik dit kan oplossen. Iemand een oplossing? Ik heb het stukje code hieronder gezet, misschien dat jullie er iets fouts aan zien. Het stukje code komt ook van het tweakers forum af.


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
$email = $orderandcustomerinfo["email"];
$afzender = "info@mizo.nl"; 
$afzendernaam = "Mizo Modeaccessoires"; 
$boundary = "Dit is de Boundary van de mail 01234"; 

$headers = "From: ".$afzendernaam." <".$afzender.">\n";  
$headers .= "Subject: ".$mailtitle."\n";  
$headers .= "MIME-Version: 1.0\n";  
$headers .= "Content-Type: multipart/alternative;\n";  
$headers .= "\tboundary=\"".$boundary."\"\n";  
$headers .= "Content-Transfer-Encoding: 7bit\n";  
$message = "--".$boundary."\n";  
$message .= "Content-Type: text/plain; charset=us-ascii\n";  
$message .= "Content-Transfer-Encoding: 7bit\n";  
$message .= "\n";  
$message .= $text."\n";  
$message .= "\n";  
$message .= "--".$boundary."\n";  
$message .= "Content-Type: text/html; charset=us-ascii\n";  
$message .= "Content-Transfer-Encoding: 7bit\n";  
$message .= "\n";  
$message .= $html."\n";  
$message .= "\n";  
$message .= "--".$boundary."--";
mail($email, $mailtitle, $message, $headers);

Acties:
  • 0 Henk 'm!

  • raphidae
  • Registratie: Februari 2001
  • Laatst online: 06-01 13:36

raphidae

...antichrist...

-Een '\n' aan het einde van je body.

-Je mist een return-path header:
code:
1
$headers .= "Return-Path: <$sender>\n";


-Je mist een message-id header (grote kans om in een spamfilter te belanden):
code:
1
$headers .= "Message-ID: <". strtr(microtime(), ". ", "$.") ."@". $_SERVER["SERVER_NAME"] .">\n";

Every morning is the dawn of a new error.