我有一个样式表,我想在路径中的HTML电子邮件中使用:
app/vendor/assets/stylesheets/inspinia/email_templates/email-styles.css
我使用Premailer-Rails gem来制作电子邮件样式.
在我的mailer.html.erb布局中,我有以下内容:
<%= stylesheet_link_tag "inspinia/email_templates/email-styles.css", media: 'all' %>
Run Code Online (Sandbox Code Playgroud)
但是,在我的Heroku日志中,我收到以下消息:
app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] Started GET "/stylesheets/inspinia/email_templates/email-styles.css" for 54.167.56.21 at 2016-12-23 23:25:08 +0000
app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92]
2016-12-23T23:25:08.286725+00:00 app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] ActionController::RoutingError (No route matches [GET] "/stylesheets/inspinia/email_templates/email-styles.css"):
Run Code Online (Sandbox Code Playgroud)
那么如何在生产中找出/指定此样式表的正确路径?
如何将' premailer'gem与Rails(3.0.7)项目集成?我目前在我的邮件中:
def welcome(user)
@user = user
mail to: user.email, subject: "Welcome"
end
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何整合图书馆.我需要打电话:
premailer = Premailer.new(html)
html = premailer.to_inline_css
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何从邮件程序操作访问我的电子邮件的内容.
我使用CKEDITOR 4并且我想过滤HTML内容以直接在HTML元素中插入样式,如MailChimp及其CSS inliner(http://beaker.mailchimp.com/inline-css).但我必须在Javascript中做,有人有想法吗?
我可以使用jQuery和PrototypeJs.
我不能使用外部API.
我的测试jsFiddle与CKEditor(粘贴):http://jsfiddle.net/EpokK/utW8K/7/
在:
<style>
.test {
outline: 1px solid red;
}
</style>
<div class="test">Hello</div>
Run Code Online (Sandbox Code Playgroud)
出:
<div style="outline: 1px solid red;">Hello</div>
Run Code Online (Sandbox Code Playgroud)
我找到了这个解决方案:http://tikku.com/scripts/websites/tikku/css_inline_transformer_simplified.js 但这个技巧打开一个标签,默认情况下它在Firefox中被阻止...
API解决方案:http://premailer.dialect.ca/
我正在使用PreMailer.Net将 CSS 内联到 HTML 文档中。但是,当我调用 MoveCssInline 时,它会编码非 ASCII 字符,例如“&”。例如:
<a href="http://www.website.com/page?param1=a¶m2=b"></a>
Run Code Online (Sandbox Code Playgroud)
改为:
<a href="http://www.website.com/page?param1=a&param2=b"></a>
Run Code Online (Sandbox Code Playgroud)
我认为这种行为仅限于 URL 和 href 值,但事实证明它也编码了innerHTML/content。例如:
此外,我进行了进一步测试,发现这种编码不仅仅针对 href 等属性进行。事实上,它也会对 text/InnerHTML 值进行编码,这些值在没有编码的情况下是绝对有效的 html。例子:
<p>&</p>
Run Code Online (Sandbox Code Playgroud)
这是有效的 HTML,不应进行编码,但 PreMailer.Net 会将其更改为:
<p>&</p>
Run Code Online (Sandbox Code Playgroud)
有没有人对此有修复或解决方法?我无法控制 HTML 文档,并且除了内联 CSS 之外,不允许更改 URL 或内容。
使用MvcMailer,问题是我们的电子邮件是在没有CSS作为内联样式属性的情况下发送的.
PreMailer.Net是一个C#库,可以读取HTML源字符串,并返回带有CSS内联的结果HTML字符串.
我们如何一起使用它们?使用MvcMailer循序渐进指南中的脚手架示例,我们从UserMailer Mailer类中的这个示例方法开始:
public virtual MvcMailMessage Welcome()
{
return Populate(x => {
x.ViewName = "Welcome";
x.To.Add("some-email@example.com");
x.Subject = "Welcome";
});
}
Run Code Online (Sandbox Code Playgroud) premailer ×5
css ×3
html ×2
actionmailer ×1
c# ×1
ckeditor ×1
email ×1
javascript ×1
mvcmailer ×1
ruby ×1