2

件名にアラビア語のテキストを使用してメールを送信したいと考えています。

コード部分は、メッセージ本文では特殊文字をアラビア語テキストに適切に変換しますが、メッセージの件名では変換できません。

何が欠けているのか知りたいですか?

      objCDOSYS = Server.CreateObject("CDO.Message") を設定します。
      Set objCDOConf = CreateObject("CDO.Configuration")
      objCDOFields = objCDOConf.Fields を設定します。

      objCDOFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
      objCDOFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1"
      objCDOFields.Update

      objCDOSYS.Configuration = objCDOConf を設定します。
      objCDOSYS.MimeFormatted=True
      objCDOSYS.BodyPart.Charset = "Windows-1256"

      objCDOSYS.From = Trim(Request.Form("frmSender"))
      objCDOSYS.To = Trim(Request.Form("frmRecipient"))

      objCDOSYS.Subject =Request.Form("frmSubject")
      objCDOSYS.HTMLBody = Trim(Request.Form("frmMessage"))

      objCDOSYS.HTMLBodyPart.charset = "Windows-1256"
      objCDOSYS.Fields.update

      objCDOSYS.Send
      objCDOFields = Nothing を設定します。
      objCDOConf を設定 = Nothing
      objCDOSYS = Nothing を設定します。
4

3 に答える 3

5

UTF-8 文字セットへの変更は、一撃の価値があります:-

objCDOSYS.HTMLBodyPart.charset = "UTF-8"

ジラポンが試みていたようなエンコーディングになると思いますが、CDOSYS が代わりにやってくれます。残念ながら、メール アドレスの表示名では機能しないことはわかっています。

于 2010-10-01T15:08:35.727 に答える
1

「=?UTF-8?B?」を使用する必要がある場合があります。件名とアラビア語のbase64でエンコードされた文字列の前に。

objCDOSYS.Subject = "=?UTF-8?B?" + Base64Encode(Request.Form("frmSubject"))

Base64Encode 関数はhttp://nolovelust.com/post/classic-asp-base64-encoder-decoder.aspxにあります。

注:私はまだこれを自分で試しました。100%確かではありません。

于 2010-10-01T11:10:34.280 に答える