Как исправить отправку текста на тайском языке по электронной почте?

Я пытаюсь отправить электронное письмо на тайском языке через страницу .asp (классическая). Код ниже

<%
response.write(GetLocale() & "<br />")
SetLocale(1054)
response.write(GetLocale())


Set Mail = CreateObject("CDO.Message")

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="smtp.gmail.com"
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") ="[email protected]"
Mail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="xxx"

Mail.Configuration.Fields.Update

Mail.Subject="ระบบแจ้งเตือนอัตโนมัติ"
Mail.From="[email protected]"
Mail.To="[email protected]"
Mail.TextBody="สวัสดี"



Mail.Send
Set Mail = Nothing

%>

но я получаю электронное письмо с результатом

????? ???????????????????? ???????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????

Кто-нибудь знает, как исправить, пожалуйста, помогите?

Способы исправления (от ulluoink ниже)

Добавьте эту малоизвестную мелочь на свои страницы:

Response.CodePage = 65001
Response.CharSet = "utf-8"

Изменить xml:

<?xml version="1.0" encoding="UTF-8" ?>.

Вы также можете убедиться, что ваши META-теги не лгут:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

И используйте этот шаблон кода:

<%
function TestEMail(sFrom, sTo, sSubject, sBody,  sBcc)
    Set objMail = Server.CreateObject("CDO.Message")
    Set objConf = Server.CreateObject("CDO.Configuration") 
    Set objFields = objConf.Fields
    With objFields
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")  =  "mail.secureserver.net"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10 
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Update 
    End With

    With objMail
        Set .Configuration = objConf
        .BodyPart.Charset = "utf-8"
        .From = sFrom
        .To = sTo
        .Subject = sSubject
        .TextBody = sBody
        if sBcc <> "" then .Bcc = sBcc
        End With

    objMail.Send
    Set objFields = Nothing
    Set objConf = Nothing
    Set objMail = Nothing
End function
%>

person Jackth    schedule 16.01.2014    source источник


Ответы (1)


вы должны использовать кодировку utf-8 для следующего:

  • ваша страница asp (файл должен быть сохранен в кодировке utf-8)
  • затем установите кодировку в asp, используя:

    Ответ.КодоваяСтраница = 65001

    Ответ.CharSet = "utf-8"

  • установите utf-8 в теле вашего объекта сообщения:

    Mail.BodyPart.Charset = "utf-8"

кроме того, посмотрите здесь (гансельман о классическом asp и utf-8) и здесь (пример cdo и utf-8)

person ulluoink    schedule 16.01.2014