2013-12-17 6 views
14

Ich möchte eine HTML-Seite, die CSS-Stylesheet enthält, an ein E-Mail-Konto senden. Das Problem ist, dass das CSS-Stylesheet überhaupt nicht sichtbar ist. Muss ich jedes CSS-Styling inline einbinden? Es scheint eine sehr ineffiziente Methode zu sein. Irgendwelche anderen Ideen?Senden Sie HTML-E-Mail mit CSS-Stylesheet über PHP

Unten ist der PHP-Code für das Senden der E-Mail:

<?php 
$to = "[email protected]"; 

// subject 
$subject = "Test mail"; 

// message 
$message = file_get_contents("index.html"); 

// from 
$from = "[email protected]"; 

// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= "From:" . $from; 

// Mail it 
mail($to,$subject,$message,$headers); 

echo "Mail Sent."; 
?> 

Ich würde Ihre Hilfe sehr zu schätzen wissen. Danke im Voraus.

+12

Ja, Sie müssen Inline-CSS verwenden. Die meisten E-Mail-Dienste wie Google (insbesondere) werden externe CSS-Dateien in den Papierkorb ziehen. –

+9

Wenn HTML für E-Mails schreiben, denken Sie an das Internet im Jahr 1996. – MackieeE

+0

ich meine Styles in einem Blatt in der '' für E-Mails einbetten in der Regel und dann auf die Klassen für das Element Inline beziehen. – Crackertastic

Antwort

0

einbetten einfach den CSS-Code in die <head> dieser html-E-Mail.

+3

Inline-CSS wird empfohlen, da nicht alle Mail-Clients CSS im '' unterstützen. – rybo111

+0

falls ich 'bootstrap' verwende, wie kann ich css hinzufügen? oder wenn ich alle CSS in 'Inline-Format 'hinzufügen ?? – Karthi

+0

Ja, fügen Sie es inline hinzu. – Roman

2

Es wäre am besten, einfach einen <style> Block mit dem ganzen CSS darin in den Körper index.html zu setzen. Einige E-Mail-Clients/Portale schneiden alle in die Kopfzeile eingebetteten CSS mit <link rel="stylesheet" type="text/css" href="..." >. Wenn Sie also kein Inline-CSS verwenden, kann dies dazu führen, dass Ihre E-Mails beispielsweise bei Konten mit der Nummer @gmail.com als "kaputt" angezeigt werden oder schlecht aussehen.

1

Google, Outlook, Yahoo alle wichtigen E-Mail-Service-Provider CSS externe Dateien nicht zulassen. Es mag antiquiert klingen, dass sie sich für Inline-Styles und Tabellen entschieden haben, um eine richtige E-Mail-Nachricht mit jedem Styling zu rendern.

Es kann mühsam Code sein, aber Unternehmen wie https://litmus.com/ und Envato werden mit einigen Vorlagen und Formatierungsproblemen helfen.

meine 2 ¢ 's: E-Mail-Anbieter alle Informationsquellen gesendet werden nicht vertrauen können und so ist dies ein Weg, um den bösartigen Code in Schach zu halten.

1

In Ihrer Datei index.html, umfasst eine wie unten <style>-Tag.

<style> 
.class{ 
style: attribute; 
} 
</style>"; 

Das sollte funktionieren, wenn nicht, dann kann ich empfehlen Ihr Stylesheet auf einer Website und mit einem <link> Tag ähnlich dem unten in den Kopf Ihrer Indexdatei von denen

<link rel='stylesheet' type='text/css' href='http://www.yourstylesheet.com'>"; 
Hosting

Entweder Methoden sollten bei Ihrem Problem helfen.

+0

funktioniert das gleiche mit einem Js-Code? (jQuery und eine js-Bibliothek) –

Verwandte Themen