Email Darstellung

Bei mir werden die ankommenden Mails immer so dargestellt wie unten angezeigt. Woran kann das liegen??? Ich nutze Outlook2007.

<= head> Folg= ende Mitteilung wurde an Sie gesandt: vname: Xxxxxx = nname: Xxxxxx <= td>telefonnummer: xxxxx-xxxxxxx email: ichwill= xxxxx@xxxxx.xx nachricht: Nachrichtentext option: Im Xxxxxx

Das Formular ist hier http://aladin69dd.bplaced.net/einenterminvereinbaren/index.html zu finden

an [quote]Outlook2007[/quote]?

wie soll sie denn aussehen? und das formular an sich nützt nicht wirklich was, das verarbeitende skript wäre interessanter…

so kommt die Nachricht die in ein Formular eingegeben wurde bei mir an:

<= head> Folg= ende Mitteilung wurde an Sie gesandt: vname: Xxxxxx = nname: Xxxxxx <= td>telefonnummer: xxxxx-xxxxxxx email: ichwill= xxxxx@xxxxx.xx nachricht: Nachrichtentext option: Im Xxxxxx

<?php

function postvars($key) {

	// Liefert die POST-Variablen unabhängig von den Magic Quotes

	if (isset($_POST[$key])) {
		if (get_magic_quotes_gpc()) {
			return (stripslashes($_POST[$key]));
		} else {
			return ($_POST[$key]);
		}
	}
	else {
		return ("");
	}
}

function xxxxxquoted_printable_encode($input) {

	// MIME-Encoding

    $line_max = 76;
	$hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
	$lines = split("\n", $input);
	$eol = "\n";
	$escape = "=";
	$output = "";

	for ($j=0;$j<count($lines);$j++) {
		$line = $lines[$j];
		$linlen = strlen($line);
		$newline = "";
		for($i = 0; $i < $linlen; $i++) {
			$c = substr($line, $i, 1);
			$dec = ord($c);
			if ( ($dec == 32) && ($i == ($linlen - 1)) ) { 
				$c = "=20"; 
			} elseif ( ($dec == 61) || ($dec==46) || ($dec < 32 ) || ($dec > 126) ) { 
				$h2 = floor($dec/16); $h1 = floor($dec%16); 
				$c = $escape.$hex["$h2"].$hex["$h1"]; 
			}
			if ( (strlen($newline) + strlen($c)) >= $line_max ) { 
				$output .= $newline.$escape.$eol; 
				$newline = "";
			}
			$newline .= $c;
		} 
		$output .= $newline;
		if ($j<count($lines)-1) $output .= $eol;
	}
	return trim($output);
}

function createHTMLMail() {

	// erzeugt eine HTML-Mail

	global $HTTP_POST_VARS;
	reset($HTTP_POST_VARS);
	
	$i=1;
	
	$mymail="";
	
	// Header
	
	$mymail.= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
	$mymail.= "<html>\n";
	$mymail.= "<head>\n";
	
	$mymail.="<META http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n";
	
	$mymail.= "</head>\n";
	$mymail.= "<body bgcolor=\"#ffffff\" text=\"#333333\" link=\"#333333\">\n";

	$mymail.= "<style>\n";
	$mymail.= "  td {font-family : Tahoma, Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 11px; color : #333333; }\n";
	$mymail.= "</style>\n";
	$mymail.="<table width=100% border=0 cellpadding=4>\n";

	$mymail.="<tr>";
	$mymail.="<td colspan=2><strong><cc:print value="&site.ressource.formgateway" javascript="1"></strong></td>\n";
	$mymail.="</tr>\n";
	
	while (list($key, $val) = each ($HTTP_POST_VARS))
	{
		switch ($key)
		{
			case "x":
			case "y":
			case "fgwemail":
			case "fgwsubject":
			case "fgwreturnurl":
				break;
	   		default:
				$mymail.="<tr>";
				$mymail.="<td><strong>".$key.":</strong></td>\n";
				$mymail.="<td width=100%>".$val."</td>\n";
				$mymail.="</tr>\n";
		}
	}

	$mymail.="</table>\n";

	return $mymail;
}

function createTextMail() {

	global $HTTP_POST_VARS;
	reset($HTTP_POST_VARS);

	$mymail="";
	while (list($key, $val) = each ($HTTP_POST_VARS))
	{
		switch ($key)
		{
			case "x":
			case "y":
			case "fgwemail":
			case "fgwsubject":
			case "fgwreturnurl":
				break;
	   		default:
				$mymail.=$key." ";
				$mymail.=$val."\n";
		}
	}
	
	$mymail.="\n";

	return $mymail;
}
	
function createMimeMail() {
	$mymime="This is a multi-part message in MIME format.\n\n";
	$mymime.="----WEB2DATEGATEWAY\n";
	$mymime.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
	$mymime.="Content-Transfer-Encoding: quoted-printable\n\n";
	$mymime.=quoted_printable_encode(createTextMail())."\n";
	$mymime.="----WEB2DATEGATEWAY\n";
	$mymime.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n";
	$mymime.="Content-Transfer-Encoding: quoted-printable\n\n";
	$mymime.=quoted_printable_encode(createHTMLMail())."\n";
	$mymime.="----WEB2DATEGATEWAY--\n";
	return $mymime;
}

function deSlash(&$element) {

	// Für Stripslash

	$element=stripslashes($element);
}

// Hauptprogramm

$fgwemail=postVars("fgwemail");
$fgwsubject=postVars("fgwsubject");
$fgwreturnurl=postVars("fgwreturnurl");
$whitelist=array(<cc:print value="&site.whitelist">);

if ($fgwemail!='nomail@kaufrausch.de') {

	if (!in_array(strtolower($fgwemail), $whitelist)) {
		die("ERROR: ILLEGAL RETURN-EMAIL-ADDRESS");
	}
	
	if (!$fgwemail) {
		die ("ERROR: NO RETURN-EMAIL-ADDRESS");
	}
	if (!$fgwreturnurl) {
		die ("ERROR: NO RETURN-URL");
	}

	mail ($fgwemail, $fgwsubject, createMimeMail(), "MIME-Version: 1.0\nContent-Type: multipart/alternative;\n\tboundary=\"--WEB2DATEGATEWAY\"\nX-Mailer: web to date Gateway Version 1.0");	
}
header("Location: ".$fgwreturnurl);
?>

nunja, du hast das problem, dass du die “/”-Zeichen raushaust. dadurch wird dein html-code versaut und es führt zu der fehlerhaften ausgabe.
frage am rande: hast du nen schimmer was in dem skript abläuft oder ist das kopiert?

nunja, du hast das problem, dass du die “/”-Zeichen raushaust. dadurch wird dein html-code versaut und es führt zu der fehlerhaften ausgabe.
frage am rande: hast du nen schimmer was in dem skript abläuft oder ist das kopiert?[/quote]

Dieser Script ist aus der formgateway.ccml von Data Becker Web to Date. Ja ich habe keinen Schimmer was da abläuft, ich habe den Script kopiert.

Ich meine, da sollte der komplette (X)HTML-Kram raus, der hat in
emails praktisch nichts zu suchen, wenn man nicht gerade solchen
(X)HTML-Kram mit dem Empfänger diskutieren will.
Dann gibt es auch keine Probleme mit der Anzeige - jedenfalls bei
halbwegs brauchbaren email-Programmen. Es gibt ja Gerüchte,
nach denen Outlook nicht wirklich zu ernsthaft brauchbaren
email-Programmen gehört ;o)

versuch mal

function createMimeMail() { $mymime="This is a multi-part message in MIME format.\n\n"; $mymime.="----WEB2DATEGATEWAY\n"; $mymime.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n"; $mymime.="Content-Transfer-Encoding: quoted-printable\n\n"; [b]$mymime.=createTextMail()."\n";[/b] $mymime.="----WEB2DATEGATEWAY\n"; $mymime.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n"; $mymime.="Content-Transfer-Encoding: quoted-printable\n\n"; [b]$mymime.=createHTMLMail()."\n";[/b] $mymime.="----WEB2DATEGATEWAY--\n"; return $mymime; }
in den fetten zeilen habe ich den aufruf der funktion
quoted_printable_encode()
weggelassen. diese maskiert die “/”-Zeichen, und dadurch werden die tags nicht als tags behandelt, sondern als normaler text. versuchs mal, sollte funktionieren…

ps.: ich stimme hoffmann zu, falls du html-mails trotzdem willst /dringend brauchst versuchs wie oben beschrieben. achtung. wenn user-eingaben dabei sind, solltest du die abfangen. dafür gibt es aber schönere möglichkeiten als gleich die ganze email zu ent-sonderzeichen-nen (Sry grausames deutsch…).
lieber nur die eigentlichen benutzereingaben, statt der ganzen mail.

function createMimeMail() { $mymime="This is a multi-part message in MIME format.\n\n"; $mymime.="----WEB2DATEGATEWAY\n"; $mymime.="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n"; $mymime.="Content-Transfer-Encoding: quoted-printable\n\n"; [b]$mymime.=createTextMail()."\n";[/b] $mymime.="----WEB2DATEGATEWAY\n"; $mymime.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n"; $mymime.="Content-Transfer-Encoding: quoted-printable\n\n"; [b]$mymime.=createHTMLMail()."\n";[/b] $mymime.="----WEB2DATEGATEWAY--\n"; return $mymime; }

Genau so habe ich es gemacht und es klappt auf anhieb. Ich danke für eure schnelle Hilfe!!!

wie gesagt, dadurch hebelst du aber den injection-schutz aus (inwiefern das relevant ist, wenn “nur” mails versand werden sei mal dahin gestellt), du solltest alles $_POST[] und $_GET[]-übergaben mit dieser oder einer vergleichbaren funktion entschärfen.
gruß
emil