2013-08-19 2 views
0

Я приложение, которое генерирует и отправляет HTML-письмо клиентам. Это работает с исключением того, что некоторые символы, а именно() & *% $ # @! ~; _ = +/-? ' не работает. Ниже приведен код, который я использую. Пожалуйста, предложите, как я могу разрешить эти специальные символы в своем электронном письме в формате HTML.Некоторые символы, не работающие в HTML-письме VB

Sub subHtmlEmail(ByVal strAddresseeEmail As String, ByVal strGroup As String) 
    Try 
     Dim strTo, strFrom, strBody, strSubject, strBcc As String 
     Dim boolHtml As Boolean = True ' set the body content to plain text(false) or HTML(true) 
     strFrom = "[email protected]" 
     strTo = strAddresseeEmail ' ; Separates emails 
     strBcc = "" ' ; Separates emails 

     strSubject = txtEmailSubject.Text 

     strBody = "<html><head></head><body>" 
     strBody = strBody & "<img src=cid:Logo>" 
     strBody &= "<br><br>" 


     strBody &= "Dear " & clsGroupCustomers.RetrieveAddressee(strAddresseeEmail, strGroup) & ",<br><br>" 

     Dim strLines As String() = txtBody.Text.Split(New [Char]() {CChar(vbCrLf)}) 
     For Each strLine As String In strLines 
      strBody &= strLine & "<br>" 
     Next 

     strBody &= "<br><br>" 

     Dim strFooterLines As String() = txtFooter.Text.Split(New [Char]() {CChar(vbCrLf)}) 
     For Each strFooterLine As String In strFooterLines 
      strBody &= strFooterLine & "<br>" 
     Next 

     HTMLView = AlternateView.CreateAlternateViewFromString(strBody, Nothing, "text/html") 

     strBody &= "</body></html>" 

     subEmail(strFrom, strTo, strBcc, strSubject, strBody, boolHtml, strAddresseeEmail) 

    Catch ex As Exception 
     Cursor = Cursors.Default 
     MsgBox("An error has occurred in your application while attempting to create the email." & Chr(13) & Chr(13) & "Description: " & ex.Message & Chr(13) & Chr(13) & "Please contact your System Administrator.", MsgBoxStyle.Critical, "Application Error") 
     Exit Sub 
    End Try 
End Sub 

ответ

1

В HTML эти символы должны быть закодированы. Например: & (Амперсанд) следует испускать как &amp;

В .NET вы можете позвонить по телефону HttpContext.Current.Server.HtmlEncode(myStringValue), чтобы сделать это автоматически для вас.

+0

Спасибо, помощник. Я просто столкнулся с System.Web.HttpUtility.HtmlEncode (myStringValue), который тоже работает. :) –