Absender bei mail() wird nicht eingetragen?
martinli
- php
Hallo,
Ich hab mir gerade mal ein e-mail Skript geschrieben, mit dem ich Textmails oder auch Html Mails verschicken kann.
Mails werden auch verschickt, aber wenn ich Textmail wähle, dann Wird der Absender nicht richtig eingetragen (Ja, als Variabele ist der Absender definiert)
Hier mal das Skript:
if($mailformat != "text" or $mailformat != "html")
{
$mailformat = "text";
}
if($mailformat == "text")
{
echo "textmail";
$header="From:".$email_from_name."<".$email_from_mail.">\n";
$header .= "Cc: ".$email_to_cc."\n";
$header .= "Bcc: ".$email_to_bcc."\n";
}
elseif($mailformat == "html")
{
echo "htmlmail";
$text = $kommentar;
include($_SERVER[DOCUMENT_ROOT] ."dateien/format.php");
$kommentar = $text;
$header = "From:".$email_from_name."<".$email_from_mail.">\n";
$header .= "Reply-To: ".$email_from_mail."\n";
$header .= "Cc: ".$email_to_cc."\n";
$header .= "Bcc: ".$email_to_bcc."\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: ".$REMOTE_ADDR."\n";
$header .= "Content-Type: text/html";
}
echo $email_from_mail."<br>";
echo $email_from_name."<br>";
echo $email_to_mail."<br>";
echo $email_to_name."<br>";
echo $kommentar."<br>";
mail($email_to_mail,$email_betreff,$kommentar,$email_headers)
Viele Grüße
Martin
Hallo,
if($mailformat == "text")
{
echo "textmail";
# $header ="From:".$email_from_name."<".$email_from_mail.">\n";
$header ="From: ".$email_from_name."\r\n";
$header.= "Reply-To: ".$email_from_mail."\r\n";
$header.= "Cc: ".$email_to_cc."\r\n";
$header.= "Bcc: ".$email_to_bcc."\r\n";
}
elseif($mailformat == "html")
{
# Auslassung
$header = "From: ".$email_from_name."\r\n";
$header .= "Reply-To: ".$email_from_mail."\r\n";
$header .= "Cc: ".$email_to_cc."\r\n";
$header .= "Bcc: ".$email_to_bcc."\r\n";
# $header .= "X-Mailer: PHP/" . phpversion(). "\n";
# $header .= "X-Sender-IP: ".$REMOTE_ADDR."\n";
# das ist trafficfressender Mist
$header .= "Content-Type: text/html\r\n";
}
Versuchs mal bitte so. Wenn es nicht funktioniert, wäre ein Link auf den Quelltext einer solchen Mail für weitere Hilfe nützlich
Gruß aus Berlin!
eddi
Hallo,
erst ein mal Danke für die Hilfen,
Ich habe den Quelltext jetzt noch mal mit \r\n erweitert, und auch das fehlende Lehrzeichen hinzugefügt.
Aber leider steht in der Zeile "von" immer noch: "WWW daemon Apache"
Der rest (Betreff und Text) wird aber richtig übertragen.
Hier noch mal der Quelltext der PHP datei:
if($mailformat == "text")
{
echo "textmail";
$header ="From: ".$email_from_name."<".$email_from_mail.">\r\n";
$header ="From: ".$email_from_name."\r\n";
$header.= "Reply-To: ".$email_from_mail."\r\n";
$header.= "Cc: ".$email_to_cc."\r\n";
$header.= "Bcc: ".$email_to_bcc."\r\n";
}
elseif($mailformat == "html")
{
$header = "From: ".$email_from_name."\r\n";
$header .= "Reply-To: ".$email_from_mail."\r\n";
$header .= "Cc: ".$email_to_cc."\r\n";
$header .= "Bcc: ".$email_to_bcc."\r\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\r\n";
$header .= "X-Sender-IP: ".$REMOTE_ADDR."\r\n";
$header .= "Content-Type: text/html\r\n";
}
mail($email_to_mail,$email_betreff,$kommentar,$header)
und hier der Quelltext der angekommenen Mail:
Der Absendername lautet: "xxA xxB xxC" (sprich ein 3 teiliger Name)
Return-Path: wwwrun@xx.info
X-Original-To: xxx@mosambik.info
Delivered-To: 1111111@dd3011.kasserver.com
Received: by dd3011.kasserver.com (Postfix, from userid 30)
id 4C6B411111C; Mon, 7 Mar 2005 14:31:33 +0100 (CET)
To: xxx@mosambik.info
Subject: Hallo Martin, wie gehts??
From: xxA@dd3011.kasserver.com, xxB@dd3016.kasserver.com,
xxCA@dd3016.kasserver.com
Reply-To: xxx@gmx.de
Cc:
Message-Id: 200503011111.4C6111811@dd3011.kasserver.com
Date: Mon, 7 Mar 2005 14:31:33 +0100 (CET)
X-Virus-Status: No
X-Virus-Checker-Version: clamassassin 1.2.2 with clamdscan / ClamAV 0.83/751/Mon Mar 7 12:06:27 2005
X-UIDL: F/-!!K,c"!I7@!!P,A!!
Hallo Martin
wie geht es dir?
gruss
Martin
Vielen Dank für die Hilfe
Martin
Hello,
$header ="From: ".$email_from_name."<".$email_from_mail.">\r\n";
$header ="From: ".$email_from_name."\r\n";
$header.= "Reply-To: ".$email_from_mail."\r\n";
$header.= "Cc: ".$email_to_cc."\r\n";
$header.= "Bcc: ".$email_to_bcc."\r\n";
Also nochmal... Der Server hat mich gerade abgewiesen.
Schau in die nächste Zeile, was Du da geschrieben hast ;-)
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
DANKE,
aber manchmal ist man einfach zu BLIND
Gruß
Martin
Hallo,
Aber leider steht in der Zeile "von" immer noch: "WWW daemon Apache"
Wenn ich Dich richtig verstehe, dann ist das "von" der Eintrag bei gmx?
Vermutlich kümmert das Webinterface nicht, was in der Mail mit "From:" angegeben wird, sondern nur um das, was dem Mail-Server beim Empfangen via SMTP mit "MAIL FROM:" angegeben wird. Da bist Du mit mail() nicht gewappnet. Dafür mußt Du mit sockets arbeiten.
Gruß aus Berlin!
eddi
Hello,
$header="From:".$email_from_name."<".$email_from_mail.">\n";
$header .= "Cc: ".$email_to_cc."\n";
$header .= "Bcc: ".$email_to_bcc."\n";
Nach Headern und Body-Sektionen müssen in eMails "\r\n" als Abschlusszeichen verwendet werden. Innerhalb der Body-Sektionen dürfen dann auch "\n" stehen. Das sind dann ja "Daten"
Nach jedem Schlüsselwort im Header muss genau "Doppelpunkt-Leerzeichen" (natürlich als Character, und nicht als Text) stehen. Du hast also mindestens zwei Fehler gemacht.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom