马上,我不是程序员。这很奇怪,但问题是难的我要么找到答案(谷歌有人吗?)还是想出来(不,真的,这是谷歌)。简单的东西(我知道这是因为我知道)?我真的遇到了麻烦。
我正在使用MVCMailer + Razor。我得到它发送邮件(转储到c:/),一切都很棒。我花了一些时间来设置我的邮件(我仍在玩弄逻辑 - 可能是关于不同主题的未来问题),我休息一下来设计它。几个解释(以及几个小时后),我无法弄明白。
首先,我从MVC 2转换(使用工具升级,工作页面等)。我继续使用Helper类在我的_Layout.cshtml类中引入样式表:
1)<head> ... <link rel="stylesheet" type="text/css" href="<%= Url.Stylesheet("Default") %>" media="all" />...</head>
当我拉出* .cshtml生成的邮件时,没有样式。注意:我的Default.css只是导入我所有的其他.css文件(我将header / content / footer / etc分开)。但是,我尝试专门加载我用于邮件的.css文件(Mailer.css - 原创,我知道)。
其次,我在一些热门博客中尝试了以下内容:
2)&lt; head> ... <link rel="stylesheet" type="text/css" href="@Url.Content("../../Content/Default.css")" /> ... </head>
是的,我为那个助手做了@using Namespace
。实际的电子邮件中没有样式。
最后,
3)我将<style>
块直接放在* .cshtml文件中。
有效。
我很难过。是MVCMailer吗?我完全错过了什么吗?我的目标是不仅仅是一个文本邮件,没有什么花哨的(标题/内容/页脚 - 一些字体样式和背景颜色)。
答案 0 :(得分:4)
这不是MvcMailer的问题。这是电子邮件客户端如何处理CSS文件的问题。
即使您的CSS文件链接正确,大多数电子邮件客户端也只会使用内联CSS。看看这个:http://www.webreference.com/programming/css_html/
答案 1 :(得分:0)
我会尝试使用:
<link rel="stylesheet"
type="text/css"
href="@Url.Abs( Url.Content( "~/content/default.css" )" ) />
您希望使用代字号创建相对于站点根目录的路径。此外,网址必须是绝对的,而不是相对的。请参阅https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide
指南答案 2 :(得分:0)
内联是要走的路。
我在HTML中已经取得了一些成功,但我不想全面依赖它。