- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的 yii2 应用程序使用 \app\mail\layouts
中给定的默认布局成功发送了带有 yii2 swiftmailer 扩展的电子邮件。名为 html.php
喜欢
Yii::$app->mailer->compose('@app/mail/templates/myTemplate', [
'param1' => $param1, 'param2' => $param2
])->setFrom($senderAdress)->setTo($reveiverAdress)->setSubject('Subject')->send();
不幸的是,标题中样式标签内的 css 不包含在 html.php
中。正如 yii2 官方指南 yiiframework.com/doc-2.0/guide-tutorial-mailing.html 所建议的(给定的示例是:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?= Yii::$app->charset ?>" />
<style type="text/css">
.heading {...}
.list {...}
.footer {...}
</style>
<?php $this->head() ?>
</head>
所以我尝试包含 OpenBuildings swiftmailer css-inliner-plugin通过 composer 安装它并按照 this tutorial 中的建议包含它通过扩展我的 web.php
到:
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.xyz.com',
'username' => 'username',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
'plugins' => [
[
'class' => 'Openbuildings\Swiftmailer\CssInlinerPlugin',
],
],
],
],
邮件仍会在不包含 <style>
的情况下发送标签内容。有没有人有将插件包含到 yii2 swiftmailer 扩展中的经验?还是有另一种使用扩展的方法,这样就根本不需要使用 swiftmailer 插件了?
最佳答案
有点晚了,但它可能会帮助后来的人找到它......
我使用了相同的代码来包含 CssInlinerPlugin 插件,它立即起作用。我在我的邮件 View 中注册了一些 css,就像这样。
$this->registerCss("
p, td, th {text-align: left; font-size: 12px; }
.classname {color: blue; }
");
...在发送的邮件中,所有 html 标签现在都具有相同的内联样式。所以这个插件似乎工作得很好。
关于你的最后一个问题。我没有找到比使用这个插件更好的方法来为 Yii2 快速处理这个问题。该插件基于包 tijsverkoyen/css-to-inline-styles ,也用于其他框架。
在 TijsVerkoyen\CssToInlineStyles 的源代码中注意到 css-classnames 从邮件中的样式标签中剥离,但 css-content 被传递到正确的标签。也许这可以解释你所看到的部分内容? (当然,这种行为是可配置的。)
关于php - Yii2:使用 Swiftmailer 插件 (Openbuildings\Swiftmailer\CssInlinerPlugin),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30935466/
我的 yii2 应用程序使用 \app\mail\layouts 中给定的默认布局成功发送了带有 yii2 swiftmailer 扩展的电子邮件。名为 html.php喜欢 Yii::$app->m
我是一名优秀的程序员,十分优秀!