Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 15:33:58 von bruening
Uwe Kornnagel schrieb:
> $header[] = 'FROM: mail_request@vdk-darmstadt.de';
> $header[] = 'RETURN-PATH: ' . $aktuser->get_email();
> $header[] = 'Reply-To: ' . $aktuser->get_email();
> // $header[] = 'MESSAGE-ID: <' . sprintf('%08d.%04d', time(),
> $mail_rec->get_id()) . '@' . $_SERVER['SERVER_NAME'] .'>';
> $header[] = 'MIME-Version: 1.0';
> $header[] = 'Content-Type: text/plain;';
> $header[] = ' charset="us-ascii"';
> $header[] = 'Content-Transfer-Encoding: 7bit';
Ich glaube du solltest deine Header mit einem Zeilenumbruch abschlieÃen.
GruÃ,
Habbo
Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 15:36:28 von Uwe Kornnagel
Hallo
ich habe ein Problem mit der PHP-Funktion mail und Outlook 2003 als
Mail-Empfänger. Das Script funktioniert im Prinzip, aber Outlook bricht
nach dem Header "Mime-Version: 1.0" ab. die nachfolgenden Header werden im
Body angezeigt. Merkwürdiger weise arbeitet das Schrip mit KMail unter
Linux problemlos.
Mein Script :
if (!defined("EOL") ) define("EOL","\r\n", 0);
function send_mail($emailaddress, $emailsubject, $body, $mail_rec)
{
global $aktuser;
$header[] = 'FROM: mail_request@vdk-darmstadt.de';
$header[] = 'RETURN-PATH: ' . $aktuser->get_email();
$header[] = 'Reply-To: ' . $aktuser->get_email();
// $header[] = 'MESSAGE-ID: <' . sprintf('%08d.%04d', time(),
$mail_rec->get_id()) . '@' . $_SERVER['SERVER_NAME'] .'>';
$header[] = 'MIME-Version: 1.0';
$header[] = 'Content-Type: text/plain;';
$header[] = ' charset="us-ascii"';
$header[] = 'Content-Transfer-Encoding: 7bit';
/*
Hier sollte normalerweise $msg als Content-Type: Multipart/Mixed;
zusammengesetzt werden. Das Dokoment selbst sollte als PDF-Anlage folgen.
*/
$msg = $body . EOL . $mail_rec->doc_txt(); // Versuch als reiner
Text.
$xhdr = implode(EOL,$header);
print "
$xhdr
"; // Hier ist alles Ok
$res = mail($emailaddress, $emailsubject, wordwrap($msg, 70),
xhdr);
return $res;
}
if( $validmail && ($page==13))
{
$mail_rec = $docus->get_doc($doc_no);
if( isset($mail_rec) )
{
$mail_to = $_REQUEST['MAIL_TO'];
$mail_sb = $_REQUEST['MAIL_SUBJ'];
$mail_tx = $_REQUEST['COMMENT'];
if(send_mail($mail_to, $mail_sb, $mail_tx, $mail_rec))
echo "Ok
"; else echo "Fehler
";
} else die("Dokoment nicht gefunden
");
}
wenn ich den POP3 mittels C++ Programm unter Linux abfrage sieht alles
normal aus.
Receive: +OK 509 octets follow.
Receive: Return-Path:
Receive: Delivered-To: 4-test@kornnagel.eu
Receive: Received: (qmail 32729 invoked by uid 30); 5 Jun 2007 15:09:04
+0200
Receive: Date: 5 Jun 2007 15:09:04 +0200
Receive: Message-ID: <20070605130904.32727.qmail@v31716.1blu.de>
Receive: To: test@kornnagel.eu
Receive: Subject: Eine Testmail mit PHP
Receive: FROM: mail_request@vdk-darmstadt.de
Receive: Reply-To: administrator@vdk-darmstadt.de
Receive: MIME-Version: 1.0
Receive: Content-Type: text/plain;
Receive: charset="us-ascii"
Receive: Content-Transfer-Encoding: 7bit
Receive:
Receive: Das ist nur ein TEST. **0104-TEXT**
Receive: .
im Outlook erscheint der Text:
Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding:
7bit
Das ist nur ein TEST. **0104-TEXT**
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 15:41:23 von Uwe Kornnagel
Jan Habbo Brüning wrote:
> Uwe Kornnagel schrieb:
>> $header[] = 'FROM: mail_request@vdk-darmstadt.de';
>> $header[] = 'RETURN-PATH: ' . $aktuser->get_email();
>> $header[] = 'Reply-To: ' . $aktuser->get_email();
>> // $header[] = 'MESSAGE-ID: <' . sprintf('%08d.%04d', time(),
>> $mail_rec->get_id()) . '@' . $_SERVER['SERVER_NAME'] .'>';
>> $header[] = 'MIME-Version: 1.0';
>> $header[] = 'Content-Type: text/plain;';
>> $header[] = ' charset="us-ascii"';
>> $header[] = 'Content-Transfer-Encoding: 7bit';
>
> Ich glaube du solltest deine Header mit einem Zeilenumbruch abschlieÃen.
>
> GruÃ,
> Habbo
Hallo,
das mache ich doch hier:
$xhdr = implode(EOL,$header);
Es kommt ja auch im Trace richtig an.
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 15:44:11 von bruening
Uwe Kornnagel schrieb:
> Jan Habbo Brüning wrote:
>> Ich glaube du solltest deine Header mit einem Zeilenumbruch abschlieÃen.
>
> Hallo,
> das mache ich doch hier:
> $xhdr = implode(EOL,$header);
> Es kommt ja auch im Trace richtig an.
Sorry, streich das bitte! Zu unaufmerksam gelesen.
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 16:02:14 von Bernd Muent
* Uwe Kornnagel wrote:
> if (!defined("EOL") ) define("EOL","\r\n", 0);
Ich glaube, versuch mal mit nur "\n". Geht es dann auch in Outlook.
B.
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 16:06:08 von Claus Reibenstein
Uwe Kornnagel schrieb:
> $res = mail($emailaddress, $emailsubject, wordwrap($msg, 70),
> xhdr);
Das soll doch wohl $xhdr heiÃen.
Ansonsten sehe ich nichts, was da kaputt sein könnte. Vielleicht ein
Outlook-Bug?
Schau Dir die Ausgabe doch mal mit einem Hex-Editor an. Vielleicht
steckt da irgendwelcher Müll dazwischen.
GruÃ. Claus
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 16:29:36 von Uwe Kornnagel
Bernd Muent wrote:
> * Uwe Kornnagel wrote:
>
>> if (!defined("EOL") ) define("EOL","\r\n", 0);
>
> Ich glaube, versuch mal mit nur "\n". Geht es dann auch in Outlook.
>
> B.
Hallo,
danke das hat geklappt.
Gruà Uwe
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 16:30:48 von Ulf Kadner
Uwe Kornnagel wrote:
> ich habe ein Problem mit der PHP-Funktion mail und Outlook 2003 als
> Mail-Empfänger. Das Script funktioniert im Prinzip, aber Outlook bricht
> nach dem Header "Mime-Version: 1.0" ab.
Ohne Deinen Code zu analysieren:
Im allgemeinen nutzt man dazu eine der zahlreichen Klassen die es dafür
gibt. (Pear, Zendframework, usw.) Da werden bereits bekannte Probleme
mit UAs meist Ohne langes rumgeeiere automagisch ausgebügelt.
MfG, Ulf
Re: Problem mail PHP Version 4.4 => MIME und Ms Outlook 2003
am 05.06.2007 17:34:38 von Bernd Muent
* Uwe Kornnagel wrote:
> danke das hat geklappt.
Fein. Ich hatte das Problem auch mal. Der MTA fügt u.U. noch ein
weiteres "\r" hinzu und dann hast du halt irgendwo 2 Zeilenumbrüche und
da trennt der Client dann Header vom Mail-Body und schon steht dein
"Content-Type"... im Body, wo er nicht hingehören sollte.
Alles etwas undurchsichtig. Im zuständigen RFC steht:
"Bare CR and bare LF appear in messages with two different meanings.
In many cases, bare CR or bare LF are used improperly instead of CRLF
to indicate line separators. In other cases, bare CR and bare LF are
used simply as ASCII control characters with their traditional ASCII
meanings."
http://tools.ietf.org/html/rfc2822
B.
--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt@bmservices.de