2017-01-18 6 views
3

私はPersits Mailで作業するシステムを持っています。正確にすべてのメールが正確に送信されますが、件名と送信者のテキストにトルコ語の文字が表示されないAndroidのネイティブメールアプリケーションのみが表示されます。私は以下の画像とメール送信コードを共有しています。メール送信者と件名エンコーディング(Persits付き)

メール送信機能

Sub sendIt(Mesaj,Subjectt,Senderr,sMail,mHost,mFrom,mUsername,mPasword) 
    Posta = trim(Posta) 
    Set Mail = Server.CreateObject("Persits.MailSender") 
    Mail.Charset = "ISO-8859-9" 
    Mail.Host  = mHost 
    Mail.From  = mFrom 
    Mail.Username = mUsername 
    Mail.Password = mPasword 
    Mail.FromName = Senderr 
    Mail.AddAddress sMail 
    Mail.Subject = Subject 
    Mail.IsHTML  = True 
    Mail.Body  = Mesaj 
    Mail.Send 
End Sub 

Androidのネイティブメールアプリのスクリーンショット(問題はここにある) It must be "Araştırma Anketi"

Gmailのメールアプリのスクリーンショット(送信者と件名が正しくトルコの文字数を持っている) On gmail app it's all true

+0

私はAndroidについては何も知らないが、普遍的な文字セットであるUTF-8は言語固有のISOセットではなく標準であり、あなたはもっと運があるかもしれない。 – John

+0

@Johnあなたが永続的なメールのエンコードについてアドバイスできれば、おそらく私はこの問題についての解決策を見つけることができます。この状況でアンドロイドを知る必要はないと思います。私は永続的なメールの件名、送信者のエンコーディングを設定する必要があります。コメントありがとう。 –

+0

コードサンプルでは、​​ 'Mail.Charset =" utf-8 "'を使用します。それ以外のところでは、私はこの投稿の手順を関連するところでお勧めします。 http://www.hanselman.com/blog/InternationalizationAndClassicASP.aspx – John

答えて

3

ヘッダー(to、from、subject、およびその他の標準およびc)で送信される電子メールメッセージフィールド。 ustom headers)は、非ASCII文字が含まれているときにエンコードする必要があります。

AspEmailは、あなたがそれを使用することができますので、このようfiedsをエンコードするためのヘルパーメソッドEncodeHeaderを持っています。

このコード例では、FromNameSubjectをエンコードする必要があります。

Sub sendIt(Mesaj,Subjectt,Senderr,sMail,mHost,mFrom,mUsername,mPasword) 
    Posta = trim(Posta) 
    Set Mail = Server.CreateObject("Persits.MailSender") 
    Mail.Charset = "ISO-8859-9" 
    Mail.Host  = mHost 
    Mail.From  = mFrom 
    Mail.Username = mUsername 
    Mail.Password = mPasword 
    Mail.FromName = Mail.EncodeHeader(Senderr, "ISO-8859-9") 
    Mail.AddAddress sMail 
    Mail.Subject = Mail.EncodeHeader(Subject, "ISO-8859-9") 
    Mail.IsHTML  = True 
    Mail.Body  = Mesaj 
    Mail.Send 
End Sub 

AspEmail Object Reference

Function EncodeHeader(Header As String, Optional Charset = "ISO-8859-1") As String

は RFC-1522による非US-ASCII文字を含む文字列をエンコードし、結果のエンコードされた文字列を返します。このメソッドを使用して、US-ASCII以外の件名、送信者の名前または受信者の名前をエンコードします。

Mail.Subject = Mail.EncodeHeader("La fête à Jean-Sébastien Bach")

または

Mail.AddAddress "[email protected]", Mail.EncodeHeader("Øystein")

文字セットは "UTF-8" またはChapter 6に記載された任意の有効な文字セットコード に設定することができます。

+0

お返事ありがとうございます。それは働いた! –

+0

@EmreErolはうれしいです。富栄NE HIZ府arada :) –

+0

雅ベンproblemiçözdümaslındaburayaダyazacaktımdakendi sorumu kendimcevaplamayayım、puan kazanmayaçalışıyorderler diyeyazmadım:) telefonda elimdeydi、bildirim gelinceエンazındanteşekküredeyim dedimsağolasın:) –

関連する問題