ASP classic CDO Электронная почта - как скрыть пробел и новую строку в сообщении электронной почты - PullRequest
0 голосов
/ 31 января 2012

Как я могу преобразовать пробел и табуляцию в моей электронной почте. см. пример ниже.

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 ]

2 голосов
/ 31 января 2012

Вы можете отправить сообщение, используя CDO.Message либо в виде открытого текста, используя свойство .TextBody, либо в виде HTML, используя свойство .HtmlBody, как в приведенном выше фрагменте кода.Если вы используете открытый текст, поскольку при получении по умолчанию в стандартном считывателе электронной почты для него по умолчанию используется моноширинный шрифт, ваш интервал будет сохранен.Если вам нужно отправить как HTML, то вам нужно отформатировать текст в соответствии с тем, как отображается HTML - не имеет значения, что это электронная почта или веб-браузер.Вы должны помнить, что HTML автоматически свернет смежные пробелы по умолчанию.Поэтому, если вам нужно отформатировать текст, вам нужно применить соответствующие стили к блоку текста в теге DIV или использовать тег PRE HTML для обозначения предварительно отформатированного текста.

0 голосов
/ 01 февраля 2012
Replace(strValue, " ", " ")
0 голосов
/ 01 февраля 2012

Чтобы заменить пробел, табуляцию, переводы строк, вы можете сделать следующее ...


    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

0 голосов
/ 31 января 2012

Ваш текст не является HTML, поэтому не присваивайте его свойству HtmlBody. Вместо этого используйте:

objCDOMail.TextBody = sBodyText
0 голосов
/ 31 января 2012

Пока вы используете формат электронной почты HTML, попробуйте использовать кодировку HTML для сообщения перед его отправкой.

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

это изменит пробелы в почте на специальный символ пробела HTML ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...