Inline CSS in the HTML output of SwiftMailer using Emogrifier.
Install via composer, using:
composer require bummzack/swiftmailer-emogrifyplugin
Requirements:
- PHP 7.2+
- SwiftMailer 6.x
- Emogrifier 6.x
By default, the plugin will inline CSS that is part of the HTML, eg. styles defined in <style>
tags.
$plugin = new EmogrifierPlugin();
$plugin->setCss('.customStyle: { color: red; };');
Here's how you could use the plugin to send emails with custom styles loaded from a file:
$plugin = new Bummzack\SwiftMailer\EmogrifyPlugin\EmogrifierPlugin();
$emogrifier->setCss(file_get_contents( /* path to your CSS file */ ));
// Create the Mailer using any Transport
$mailer = new Swift_Mailer(
new Swift_SmtpTransport('smtp.example.org', 25)
);
// Use Emogrifier plugin to inline styles.
$mailer->registerPlugin($plugin);
$message = new Swift_Message();
$message
->setSubject('Your subject')
->setFrom(['[email protected]' => 'Test'])
->setTo(['[email protected]'])
->setBody('<p>My custom HTML</p>', 'text/html');
// Send your email
$mailer->send($message);