ASP经典CDO电子邮件消息 - 如何隐藏电子邮件中的空间和新行

时间:2012-01-31 09:38:43

标签: asp.net asp-classic

如何在电子邮件中转换空格和标签。请看下面的例子。

test1 
test 
zzzyyy     trsthshs  asas   asas    dasdads sadasd
asdad 1    2   3   5   6  7                       8
:test only..

当我收到电子邮件时,格式已更改。数字7接近数字8,间距减少到1

test1 
test 
zzzyyy trsthshs asas asas dasdads sadasd
asdad 1 2 3 5 6 7 8
:test only..

如何保留格式以包含多个空格..

我使用了这段代码。

Set objCDOMail = Server.CreateObject("CDO.Message")
Set  objCDOMail.Configuration = cdoConfig 
objCDOMail.BodyPart.Charset = "UTF-8"
objCDOMail.HTMLBody  = sBodyText 

5 个答案:

答案 0 :(得分:2)

您可以使用CDO.Message以明文形式使用.TextBody属性发送消息,也可以使用.HtmlBody属性作为HTML发送消息,如上面的代码片段所示。如果您使用明文,因为它在收到时应默认为典型电子邮件阅读器中的单行间距字体,因此您的手动间距将被保留。如果您需要以HTML格式发送,那么您需要根据HTML呈现的方式格式化文本 - 无论是电子邮件还是Web浏览器。您必须记住,HTML默认会自动折叠相邻的空格。因此,如果需要格式化文本,则需要将适当的样式应用于DIV标记中的文本块,或者可以使用HTML PRE标记来表示预格式化的文本。

答案 1 :(得分:0)

在使用HTML电子邮件格式时,请尝试在发送邮件之前使用HTML编码。

string encodedMessage = System.Web.HttpUtility.HtmlEncode(message);

这会将邮件中的空格更改为HTML空格特殊字符(& nbsp;)

答案 2 :(得分:0)

您的文字不是HTML,因此请勿将其分配给HtmlBody媒体资源。而是使用:

objCDOMail.TextBody = sBodyText

答案 3 :(得分:0)

要替换,空格,制表符,换行符,您可以执行以下操作...


    space_entity = "&" & "nbsp" & ";" 'I had to break it up like this cause stackoverflow does not take & n b s p ; sequence witohut the spaces in there ;)
    html_br = "" 'same reason! can't write regular br tag in here.. :( 


    sBodyText = replace(sBodyText," ",space_entity)
    sBodyText = replace(sBodyText,vbtab,space_entity)
    sBodyText = replace(sBodyText,vbcrlf,html_br & space_entity)

HTH

答案 4 :(得分:0)

Replace(strValue, " ", " ")