gpt4 book ai didi

php - Yii2:使用 Swiftmailer 插件 (Openbuildings\Swiftmailer\CssInlinerPlugin)

转载 作者:可可西里 更新时间:2023-10-31 23:29:57 25 4
gpt4 key购买 nike

我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com