Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在YII2中为电子邮件应用样式(Gmail不允许我)_Php_Email_Yii2 - Fatal编程技术网

Php 在YII2中为电子邮件应用样式(Gmail不允许我)

Php 在YII2中为电子邮件应用样式(Gmail不允许我),php,email,yii2,Php,Email,Yii2,下午好!我如何才能为此邮件添加样式?我在swiftmailer库中使用Yi2。以下是我的例子: $a = Yii::$app -> mailer -> compose() -> setFrom('') -> setTo('') -> setSubject('My title') -> setTextBody('Plain text content') -> setHtmlBody('My text') -> send(); mail/layout

下午好!我如何才能为此邮件添加样式?我在swiftmailer库中使用Yi2。以下是我的例子:

$a = Yii::$app -> mailer -> compose()
-> setFrom('')
-> setTo('')
-> setSubject('My title')
-> setTextBody('Plain text content')
-> setHtmlBody('My text')
-> send();
mail/layout/html.php

<?php
use yii\helpers\Html;

/* @var $this \yii\web\View view component instance */
/* @var $message \yii\mail\MessageInterface the message being composed */
/* @var $content string main view render result */
?>
<?php $this->beginPage() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=<?= Yii::$app->charset ?>" />
    <style type="text/css">
    .tg  {border-collapse:collapse;border-spacing:0;border-color:#ccc;}
    .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#fff;border-top-width:1px;border-bottom-width:1px;}
    .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:0px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;border-top-width:1px;border-bottom-width:1px;}
    .tg .tg-yw4l{vertical-align:top}
    .tg .tg-b7b8{background-color:#f9f9f9;vertical-align:top}
    </style>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>
<body>
    <?php $this->beginBody() ?>
    <?= $content ?>
    <?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>


在你的项目中,你应该有一个带有

mail/layout/html.php

在此内容内

  <?php
  use yii\helpers\Html;

  /* @var $this \yii\web\View view component instance */
  /* @var $message \yii\mail\MessageInterface the message being composed */
  /* @var $content string main view render result */
  ?>
  <?php $this->beginPage() ?>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
      <meta http-equiv="Content-Type" content="text/html; charset=<?= Yii::$app->charset ?>" />
      <title><?= Html::encode($this->title) ?></title>
      <?php $this->head() ?>
  </head>
  <body>
      <?php $this->beginBody() ?>
      <?= $content ?>
      <?php $this->endBody() ?>
  </body>
  </html>
  <?php $this->endPage() ?>


gmail和其他基于web的客户端确实会去掉外部样式表和/或头标签。(见附件)

最好是将所有样式直接内联到HTML元素中