我一直在使用CakePHP,最近需要从应用程序发送电子邮件。不幸的是,我无法想办法告诉CakePHP将css直接包含在文档中作为内部样式表而不是链接。我知道人们认为这是一个坏主意,但我的应用程序只是向我们公司发送电子邮件,所以我并不担心某人的电子邮件客户端搞砸了它。如果我只是包含链接它不起作用,因为引用是错误的,虽然我可以使链接成为绝对链接(http://myserver/css/myfile.css而不是/css/myfile.css)是第二个最好的选择,因为他们可以访问我的服务器。
如果没有办法在Cake中执行此操作,是否有一种快速方法可以使用PHP来读取文件的内容并将其转储到视图中?我想我可以从控制器那里做到这一点,听起来像是一个糟糕的黑客。
任何想法都将不胜感激,谢谢
答案 0 :(得分:1)
我建议您使用php变量作为样式类,并将其直接用作css类。例如。
$class1 = "border : 1px solid #eeeeee; font-family : font1, font2, font3; color : #785634;"
并将其用作电子邮件模板
<div id='my-div' style=<?php echo $class1; ?>>Your div content </div>
即使我不知道如何在电子邮件中包含样式表,如果你创建了一些类,那么它们将无法在电子邮件模板中使用。
所以这就是我在项目中使用css的方式。
答案 1 :(得分:1)
你可以将css放在电子邮件布局中,就像普通的html一样(使用html电子邮件布局)
<style type="text/css"></style>
答案 2 :(得分:0)
审核code of the htmlHelper表明无法完成。
但是,您可以更改或重载帮助程序;要以最简单的方式这样做,只需在第371到378行之间添加一个新选项。
答案 3 :(得分:0)
您可以使用readfile()
直接在视图中打印文件内容。
或者您可以$this->Html->url('css/yourcss.css', true)
获取文件的完整路径并将其传递给css方法。
答案 4 :(得分:0)
我使用了脚本标签中包含的PHP的include函数,它运行得很好!在默认电子邮件视图中:
<script>
include('css/your_css_doc.css');`
</script>
答案 5 :(得分:0)
你可以写内联css:
<h2 style="color:#818381">Here are the latest stories everyone's talking about...</h2>