phps-cans / mail.swift.renderer-twig
This package contains a implementation of the SwiftMailRenderer interface which use twig to render the mail message.
Requires
- php: >=7.0.0
- phps-cans/mail.swift.renderer-interface: ^5.0
- twig/twig: ~1.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-11-23 20:20:45 UTC
README
Swift Twig Mail Generator
This package takes a Twig template and generates a Switf mail from this template.
Installation
composer require thecodingmachine/swift-twig-mail-template
Once installed, you can start creating an instance of the SwiftTwigMailTemplate
class.
The SwiftTwigMailTemplate
represents a mail template that can generate Swift mails.
Example
Because we consider that an example is better than everything else...
Start by creating your mail template. Your template should have two blocks:
{% block subject %} Your suject {% endblock %} {% block body_html %} Body with HTML. {% endblock %}
If you want you can add another block containing your text body. This block is optional since we can get your the text body directly from the html one.
{% block body_text %} Body without HTML. {% endblock %}
Now, let's create a SwiftTwigMailTemplate
instance. This object will generate a SwiftMail
from the twig template.
// We assume that $twigEnvironment is a valid TwigEnvironment instance $twigSwiftMailTemplate = new SwiftTwigMailTemplate($twigEnvironment, 'path/to/template.twig'); // The renderMail method generates a Swift mail object. $swiftMail = $twigSwiftMailTemplate->renderMail(['paramKey' => paramValue]); // We fill the swift mail with additional information $swiftMail->setFrom('sender@example.com'); $swiftMail->setTo('recipient@example.com'); // We assume that $mailer is a valid Swift_Mailer instance $mailer->send($swiftMail);
Going further
The SwiftTwigMailTemplate
class has been designed with dependency injection in mind. Instances can be easily put in your container for easy reuse.
Furthermore, the SwiftTwigMailTemplate
class shares a lot with the Swift_Mail
class. You can:
- setting the from address
- setting the from name
- setting the to address
- setting the to name
- setting the Bcc address
- setting the Bcc name
- setting the Cc address
- setting the Cc name
- setting the ReplyTo address
- setting the ReplyTo name
- setting the max line size
- setting the priority
- setting the read receip to
- setting the return path