我正在使用此代码发送电子邮件
var message = new MailMessage("abc@somedomain.com", "administrator@anotherdomain.com");
message.Subject = "Testing";
message.IsBodyHtml = true;
message.Body = "<html><body>IMAGINE A LOT OF HTML CODING HERE</body></html>";
问题是我只是复制了我想要发送的HTML作为电子邮件,现在我必须在一行中制作整个HTML代码!否则就是说“;”失踪!我的意思是,现在我不能继续删除空格并把它全部放在一行!这是我需要发送的HTML代码太多了。我该怎么办 ? :/
[编辑]
另一个问题:message.Body
是否有限制?就像限制HTML可以插入多少?
答案 0 :(得分:10)
Dan提供了一个选项 - 逐字字符串文字 - 但我建议您将数据移动到单独的HTML文件中。将它作为资源嵌入到程序集中,然后可以在执行时加载它。
通过这种方式,您将获得HTML语法突出显示,您不会使用大量数据混乱您的代码,并且您可以随时轻松地编辑它,而不必担心双引号(这会需要在逐字字符串文字中加倍,或在常规字符串文字中使用反斜杠进行转义。)
缺点是将用户数据放在HTML中变得更加困难 - 为此,您可能需要考虑使用模板系统;或者只是手写(html = html.Replace("$user", name)
)或可用的各种模板库之一。当然,请谨慎使用HTML转义。
答案 1 :(得分:6)
您可以使用@
字符:
message.Body = @"
<html>
<body>
IMAGINE A LOT OF HTML CODING HERE
</body>
</html>";
如果你有一个小的HTML标记/想要一个快速而肮脏的解决方案,这样就行了。对于生产代码,我建议您使用Jon Skeet建议的内容,保留单独的HTML文件。
答案 2 :(得分:2)
回答你的第二个问题:
“Body属性可以包含任何大小不超过4 MB的对象”
来自http://msdn.microsoft.com/en-us/library/system.messaging.message.body.aspx
答案 3 :(得分:1)
将文字放在多行上?
message.Body = "<html><body>IMAGINE A LOT OF "+
" HTML CODING HERE</body></html>";