2010-09-23 184 views
2

我使用这个代码发送电子邮件发送电子邮件给用户

var message = new MailMessage("[email protected]", "[email protected]"); 
message.Subject = "Testing"; 
message.IsBodyHtml = true; 
message.Body = "<html><body>IMAGINE A LOT OF HTML CODING HERE</body></html>"; 

问题是我只是复制,我想作为电子邮件发送的HTML,现在我必须使整个HTML代码ONE单线!否则它会说“;”失踪!我的意思是,现在我不能继续删除空格,并把它放在一行!这是太多的HTML代码,我需要发送。我该怎么办 ? :/

[编辑] 另一个问题:是否有限制这message.Body?像这样可以插入多少HTML的限制?

回答

10

Dan给出了一个选项 - 逐字字符串文字 - 但我想建议您将数据移动到单独的HTML文件中。将其作为资源嵌入到程序集中,然后可以在执行时加载它。

通过这种方式,您将获得HTML语法高亮显示功能,不会使用大量数据混淆您的代码,而且您可以随时轻松编辑它,而无需担心诸如双引号之类的内容需要在逐字字符串文字中加倍,或者在常规字符串文字中用反斜线进行转义)。

不利的一面是,将用户数据放在HTML中变得越来越难 - 为此,您可能需要考虑使用模板系统;无论是简单的手写(html = html.Replace("$user", name))或可用的各种模板库之一。当然,在适当的时候要小心使用HTML转义。

+0

好吧会尝试做到这一点.. thnx – Serenity 2010-09-23 07:38:01

6

可以使用@字符:

message.Body = @" 
    <html> 
     <body> 
      IMAGINE A LOT OF HTML CODING HERE 
     </body> 
    </html>"; 

此工程确定,如果你有一个小的HTML标记/想快速和肮脏的解决方案。对于产品代码,我建议你使用Jon Skeet提出的建议,保留一个单独的HTML文件。

+1

参考:http://msdn.microsoft.com /en-us/library/aa691090(VS.71).aspx – 2010-09-23 07:34:55

1

将文本放到多行上?

message.Body = "<html><body>IMAGINE A LOT OF "+ 
       " HTML CODING HERE</body></html>"; 
相关问题