MAIL() mit CSS style (als style block oder aus verlinkter styles.css) ****?

NetBull

Erfahrenes Mitglied
Hallo Leute,

ich hab ein Problem mit dem Mail Befehl!

Code:
$headers .= "MIME-Version: 1.0\r\n";
	$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
	
	$subject = "Test über Localhost";
	
	$style = "
		<style type='text/css'>
		<!--
			body
			{
	    		background: black;
			}
		-->
		</style>
	";
	
	$message = '<html><header>$style</header<body>';
	
	$message = "Das ist ein einfacher Test über den Localhost über die DEV!?";
	
	$message .= '</body></html>';
	
	
	
	$result = mail( $to, $subject, $message, $headers ); 
		
	if ( $result )
		echo "The email has been sent!";
	else
		echo "The email has failed!";

Die CSS Formatierung wird weder im Mail, noch wenn ich mit echo die Message Ausgebe ausgeführt... Hat hier jemand ein Beispiel für mich wie ich CSS für ein EMail mache?

cu s00n
NetBu||
 
Hallo,

ich weiß nicht, ob es was bringt, aber versuch doch mal statt nur "background" das richtige CSS-Attribut "background-color" zu verwenden.

Im Übrigen kann ich bei Google nur Beispiele finden, bei denen das style-Attribut der HTML-Tags definiert wird. Über eine globale Style-Angabe im Header bin ich noch nicht gestoßen. Möglicherweise funktioniert das bei Emails nicht. Stattdessen solltest du also versuchen, das Style-Attribut auf body anzuwenden.
 
merci, das hab ich glatt übersehen...

hab ein wenig mit Mail-Funktionen und CSS rumgespielt, klappt auch soweit.

Aber einige CSS Formatierungen wollen nicht. In allen aktuellen Browsern gehts einwandfrei, nur Outlook hat keine Lust!

Beispiel 1:
Code:
a, a:link, a:visited, a:hover 
	{
		color: #FFFF00;
	}
Die links sind da, in den Browsern auch farblich anders, nur outlook bleibt stur beim häslichen blau! Komischerweise landen die Mails sofort im Spam Ordner wenn man die Links über CSS anders formatiert.

Beispiel 2:
Code:
H1
	{
		padding: 25px;
		padding-bottom: 7px;
		margin-bottom: 3px;
	}
Alle Browser zeigen Padding und Margin wie gewünscht nur Outlook macht weder padding noch margin.

Weis hier jemand Rat oder Lösung?

LG NetBu||
 
Mail Funktion: CSS Style mit Grafiken übertragen.

Hallo Leute,

hab ein Mail-Tool gemacht das mir eine CSS Datei einliest und diese dann in einen Body parsed um schön gestylte Mails schicken zu können. Nun weis ich absolut nicht wie ich die Grafiken einbinde. Klar ich könnte die mit dem absoluten Pfad auf dem Server liegen lassen. Das wäre unschön und vor allem häslich wenn der User seine Mail offline liest oder nicht an den Server kommt.

Code:
function getStyle()
{
	$mRetVal = "";
	
	$mCssLines = file("style.css");
	foreach($mCssLines as $fLine)
		$mRetVal .= trim($fLine);
	
	return $mRetVal;
}	

$to = "mail@localhost";

$headers = "From: test1@localhost\r\n";
$headers .= "Reply-To: test2@localhost\r\n";
$headers .= "Return-Path: test3@localhost\r\n";
$headers .= "CC: test4@localhost\r\n";
$headers .= "BCC: test5@localhost\r\n";

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$subject = "Test über Localhost";

$message = 
"
	<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
	<html>
		<head>		
			<style type='text/css'>".getStyle("style.css")."</style>			
			<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
			<title>Insert title here</title>
		</head>
		<body>
			Das ist ein Test-E-Mail mit CSS!
                        <div id='test'></div>
		</body>
	</html>
";
echo $message;
	
$result = mail( $to, $subject, $message, $headers ); 

exit;
if ( $result )
	echo "The email has been sent!";
else
	echo "The email has failed!";

In der CSS Datei würde ich eine Grafik über ein Tag normal einbinden.
Code:
#test
{
	height: 195px;
	width: 147px;
	background-image:url('http://www.test.de/img/pp/logo.png');
}
Natürlich geht das so! Aber ich möchte das die Grafik mit der Mail gesendet wird und dann lokal eingebunden, das die auch offline geht.

Geht das ? und wenn wie?

LG NetBu||
 
hmmm... ist aber embedded, ich bräuchte einen Weg wie eine solche Grafik über CSS eingebunden werden kann. Das beispiel will auch nicht, ...

Zeile 42:
Code:
$body = <<<EOBODY --PHP-mixed-{$sep} Content-Type: multipart/alternative; boundary="PHP-alt-{$sep}...
lässt sich nicht so eingeben, ann macht mein eclips nicht mit und wenn ich das in "" setze passiert nix.
 
Zurück