7

我有一些基本的 html 和一些 css,但出于某种原因,gmail 将3D信息放在“text/css”中

代码示例

$message = "
            <style type='text/css'>
              #main {border:1px solid red;}
            </style>

              <div id='main'>some text</div>
";

但是当我查看原始发送到 gmail

<style type=3D'text/css'>

也许这就是邮件没有样式的原因。我正在使用快速邮件

// 同样在 html 中

<div id=3D'main'>

// 快速邮件

    $type = $message->getHeaders()->get('Content-Type');
    $type->setValue('text/html');
    $type->setParameter('charset', 'utf-8');
4

3 回答 3

2

据我所知,gmail 不支持头部或正文中的样式标签。我在发送电子邮件时使用元素的样式属性。

于 2012-05-26T02:08:55.130 回答
2

让 swift mailer 以 HTML 格式发送消息,即使是 gmail ,因为 swift mailer 将 html 标签转义为其表示的字符,所以你需要这样写这些行:

$message = (new Swift_Message('Message Subject HERE '))
        ->setFrom(array('sender email' => 'Sender Name')) // can be $_POST['email'] etc...
        ->setTo(array('reciever email' => 'Receiver Name')) // your email / multiple supported.
        ->setEncoder( new Swift_Mime_ContentEncoder_PlainContentEncoder('8bit'))
        ->setBody($template, "text/html");

在那之后,每件事都应该正常工作,这里的诀窍是直到 swift mailer 使用 Swift mailler MimeType 类并指向正确的编码。您可以在此处查看更多信息链接

于 2018-09-09T20:31:50.523 回答
1

斯威夫特梅勒正试图逃避“到\”。你必须在 setBody() 之前使用 setEncoder():

$message->setEncoder(Swift_Encoding::get8BitEncoding());
$message->setBody($body, "text/html");
于 2014-04-24T12:17:03.750 回答