2016-07-15 10 views
0

Ich versuche, eine schöne E-Mail-Vorlage mit Symfony 3 zu machen, aber außer dem grundlegenden HTML-Code wie eine Balise nichts funktioniert.Include css in E-Mail-Vorlage in Symfony 3

Hier ist meine Muttervorlage:

<!DOCTYPE HTML> 
<html> 
    <head> 
     <meta charset="utf-8"> 

     {% block stylesheets %} 
      {% stylesheets 
       'bundles/platform/bootstrap/css/bootstrap.min.css' 
       'bundles/platform/bootstrap/fonts/glyphicons-halflings-regular.eot' 
       'bundles/platform/bootstrap/fonts/glyphicons-halflings-regular.svg' 
       'bundles/platform/bootstrap/fonts/glyphicons-halflings-regular.ttf' 
       'bundles/platform/bootstrap/fonts/glyphicons-halflings-regular.woff' 
       'bundles/platform/bootstrap/fonts/glyphicons-halflings-regular.woff2' 
       filter='cssrewrite' %} 
       <link rel="stylesheet" href="{{ asset_url }}" /> 
      {% endstylesheets %} 
     {% endblock %} 
    </head> 
    <body> 

     <div id="content-block" class="row"> 
      {% block contentBlock %} 
      {% endblock %} 
     </div> 

     {% block javascripts %} 
      {% javascripts 
       '@PlatformBundle/Resources/public/bootstrap/js/bootstrap.min.js' 
       %} 
       <script src="{{ asset_url }}"></script> 
      {% endjavascripts %} 
     {% endblock %} 
    </body> 
</html> 

Das Kind Vorlage:

{% extends "PlatformBundle:Emails:template_email.html.twig" %} 

{% block contentBlock %} 

    <div class="text-center"><h2>New asking</h2></div> 

    <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8 col-lg-offset-2 col-md-offset-2 col-sm-offset-2 col-xs-offset-2 well"> 

     <p> ask from : {{authorEmail}} </p> 
     <p> Subject: {{subject}} </p> 
     <p> {{content}} </p> 

    </div> 
{% endblock %} 

Und schließlich die Funktion, die die E-Mail in meinem Controller senden:

$renderedTemplate = $this->container->get('templating') 
     ->render('PlatformBundle:Emails:contact_from_user.html.twig', array('subject' => $subject, 'authorEmail' => $authorEmail, 'content' => $content)); 

$message = \Swift_Message::newInstance() 
     ->setSubject($subject) 
     ->setFrom($platform->getEmail()) 
     ->setTo($toEmail) 
     ->setBody($renderedTemplate, 'text/html');  

Also, mein Frage: Wie kann ich meine Vorlage machen, den beigefügten CSS verwenden oder wenn es nicht möglich ist, wie eine schöne E-Mail wie der für exemple zu machen:

enter image description here

EDIT:

Für diejenigen, die wollen, hier ist eine große schablone für ansprechende E-Mail, die an masteries gute Sachen zeigen diese: responsive-html-email-template

Antwort

2

Das Problem mit CSS-Dateien in einer E-Mail mit, dass viele E-Mail-Reader (wie Google Mail zum Beispiel) blockiert sie.

Der beste Weg ist, das style = "" -Tag für jedes Element Ihrer HTML-Vorlage einzufügen.

Da Sie Zweig verwenden, können Sie eine Variable erstellen und sie in Ihrer Vorlage verwenden, um zu vermeiden, jedesmal CSS-Regeln zu schreiben.

+0

Oh ok, das wusste ich nicht. Also, ist es immer noch möglich Bootstrap zu verwenden? Können Sie mir ein Beispiel dafür geben, wie Sie die Variable twig für das Thema verwenden? – LedZelkin

+0

Wenn Sie mit den meisten E-Mail-Lesern kompatibel sein wollen, ist das keine gute Idee. Responsive E-Mail-Vorlage, wenn sehr kompliziert. Ich benutze das HTML-Tag, um dies zu tun, aber es braucht viel Zeit, um ein perfektes Ergebnis zu erzielen. Sie können diesen Link https://www.campaignmonitor.com/css/ verwenden, um zu erfahren, wie jeder E-Mail-Reader Ihre CSS-Regeln akzeptiert oder nicht. – IMACODE

+0

Vielen Dank, zumindest jetzt, ich weiß, wie man das nimmt – LedZelkin