הפתרון היחידי שמצאתי הוא להמיר את תוכן ההודעה ליוניקוד ואז להשתמש בפונקציה Server.HTMLEncode ולאחר מכן להמיר את תווי ה-HTML (<>) ועוד כמה לתגים האמיתיים שלהם על מנת שיתקבל קוד HTML תקני.
הנה קוד דוגמא פשוט: <% msgBody = "<span style=""font-size:12px;font-family:Arial;"">סתם טקסט עם אנגלית – bla bla 123</span>"
Set Mail = Server.CreateObject("CDONTS.NewMail") With Mail .From = "[email protected]" .To = "[email protected]" .MailFormat = 0 .BodyFormat = 0 .SetLocaleIDs "65001" .Subject = "סתם נושא" .Body = DoHTML(Server.HTMLEncode(msgBody)) .Send End With Set Mail = Nothing
Function DoHTML(str) If Len(str) = 0 or IsNull(str) Then Exit Function str = Replace(str,"<","<") str = Replace(str,">",">") str = Replace(str,""","""") str = Replace(str,"&","&") DoHTML = str End Function %> גם אחרים נתקלו בבעיה זו והפתרון היחידי שמצאו הוא לעיל.
1 תשובות
סבלתי מהבעיה זמן רב עד שהחלטתי לחפש פתרון.
הפתרון היחידי שמצאתי הוא להמיר את תוכן ההודעה ליוניקוד ואז להשתמש בפונקציה Server.HTMLEncode ולאחר מכן להמיר את תווי ה-HTML (<>) ועוד כמה לתגים האמיתיים שלהם על מנת שיתקבל קוד HTML תקני.
הנה קוד דוגמא פשוט:
<%
msgBody = "<span style=""font-size:12px;font-family:Arial;"">סתם טקסט עם אנגלית – bla bla 123</span>"
Set Mail = Server.CreateObject("CDONTS.NewMail")
With Mail
.From = "[email protected]"
.To = "[email protected]"
.MailFormat = 0
.BodyFormat = 0
.SetLocaleIDs "65001"
.Subject = "סתם נושא"
.Body = DoHTML(Server.HTMLEncode(msgBody))
.Send
End With
Set Mail = Nothing
Function DoHTML(str)
If Len(str) = 0 or IsNull(str) Then Exit Function
str = Replace(str,"<","<")
str = Replace(str,">",">")
str = Replace(str,""","""")
str = Replace(str,"&","&")
DoHTML = str
End Function
%>
גם אחרים נתקלו בבעיה זו והפתרון היחידי שמצאו הוא לעיל.