Problem bei Mailfunktion --> Mailheader

Shiivva

Erfahrenes Mitglied
Hallo!
Hab ein Problem mit dem Senden von Mailheadern über PHP.

Script (nach Ausfüllen eines Formulars)

Code:
<?php

$email = "abc@xyz.de";

/*adressen holen*/
$fd = fopen ("adressen.txt", "r");
while (!feof($fd)):
 /*zeile für zeile durchgehen*/
 $buffer = fgets($fd, 4096);
 $buffer = trim($buffer);
 $txtmail = "";
 $txtmail = $buffer;

/* headers */
$xtra = "Return-Path: <$email>\r\n"; 
$xtra .= "MIME-Version: 1.0\n"; 
$xtra .= "From: $email\r\n"; 
$xtra .= "X-Sender: $email\r\n"; 
$xtra .= "Reply-To: $email\r\n";
$xtra .= "Errors-To: $email\r\n";
$xtra .= "X-Mailer: PHP ". phpversion(); 

/* email schicken */

mail($txtmail, $betreff, $msg, $xtra);
endwhile;

fclose ($fd);
echo "alle Mails geschickt";
?>

UND jetzt das Problem!
Habe die Mails testweise an meine Puretec-Email-Account geschickt und an eine yahoo-Adresse.
Bei der yahoo-Adresse klappt alles bestens, nur beim Puretec-Email-Account schreibt er die Mailheader in den Emailtext, statt in den wirklichen Emailheader.

Hab ich da oben nen Fehler drin? Ist die Reihenfolge der jeweiligen xtra-s wichtig? Oder stimmt da was mit den Zeilenumbrüchen nicht?
Oder liegts an der Konfiguration von Puretec?

Wer kann helfen?
 
Ich kann dazu nur sagen, das es immer irgendwelche Probleme mit puretec gibt. Das scheint an der Server-Konfiguration zu liegen. In deinem Quelltext ist alles oki.
 
ja, das mit den "Problemen" bei Puretec ist mir auch schon aufgefallen. D.h. z.B. bekomme ich Newsletter die an die Puretec-Adresse gehen oft ohne Zeilenumbrüche... na ja.

Das Script, was da oben steht, ist so ne Art "Newsletter".
Und ich will halt den Return-Path beeinflussen...vielleicht lässt Puretec das nicht zu?
 
Hmm solange der header richtig ist (und das ist er so wies aussieht)
kann puretech des eigentlich net merken ob der return path stimmt oder nicht.

ich wüsste nicht wie
 
hm, also der "header" also meine xtra-s werden bei der puretec-mailadresse, warum auch immer, nicht überschrieben.
d.h. das was ich da an xtra-s angebe, wird halt im msg-txt "geprinted".

moment ich such mal grad die versch. mailheader.


/edit:
also das komische ist, das genau nach dem x-sender alles geprinted wird. d.h.

Return-path: <abc@xyz.de>
Envelope-to: webmistress@shiivva.de
Delivery-date: Wed, 20 Mar 2002 15:37:11 +0100
Received: from [62.146.25.138] (helo=memberservice.de)
by mxng07.kundenserver.de with smtp (Exim 3.22 #2)
id 16nhDB-0007pW-00
for webmistress@shiivva.de; Wed, 20 Mar 2002 15:37:09 +0100
Received: (qmail 11946 invoked by uid 511); 20 Mar 2002 14:37:08 -0000
Date: 20 Mar 2002 14:37:08 -0000
Message-ID: <20020320143708.11945.qmail@memberservice.de>
To: webmistress@shiivva.de
Subject: Betreff!
MIME-Version: 1.0
From: abc@xyz.de
X-Sender: abc@xyz.de

##########
und
Reply-To: abc@xyz.de
Errors-To: abc@xyz.de
X-Mailer: PHP 4.0.4pl1

wird geprinted.

Müssen die X-Angaben unbedingt ans Ende?
 
Zuletzt bearbeitet:
JUHU!

Fehler gefunden.

Das Problem waren die \r-s.
Bei dem Server scheinen die weg zu müssen...

also:

$xtra = "Return-Path: <$email>\n";
$xtra .= "MIME-Version: 1.0\n";
$xtra .= "From: $email\n";
$xtra .= "Reply-To: $email\n";
$xtra .= "Errors-To: $email\n";
$xtra .= "X-Sender: $email\n";
$xtra .= "X-Mailer: PHP ". phpversion();

und es klappt alles...
 
hm, und wie sieht's aus mit outlook?

ich hab mir vor ner zeit mal die mail()-funktion auf php.net durchgelesen. so wie ich das verstanden habe, muss zwischen dem header und dem rest der mail (body) "\r\n" gestellt werden, um das sauber zu trennen.

wenn ich mails in outlook lesen möchte, muss ich in den body sowieso "\r\n" stellen. jedenfalls isses bei mir so. Server: LAMP, mein PC: win2k + outlook(office)2k

matt:)
 
Zurück