2010-11-22 5 views
2

インディコンポーネントTidSMTPTidMessageを使用して電子メールを送信しています。Indy:TidMessageはすべてのアクセントを削除します。これを無効にする方法は?

私が受け取るメールはアクセントなしです。

私は例のために行う場合:

MyTIdMessage.Body.Text := 'Tèst'; 

私は、電子メールを受け取ると、私が代わりに「TEST」の「テスト」を参照してください

アクセントを無視しないTIdMessageを指示する方法はありますかこのバグですか?

注:私は、あなたが文字列値がIdCharsetNames配列にリストされています。この

MyIdMessage.CharSet := 'US-ASCII'; 

を行うことによって、正しい文字セットを設定していることを確認してくださいインディ10.5.8.0

+1

どのバージョンのデルファイを使用していますか?私はちょうどDelphi XE/Indy 10.5.7でテストを行いました。それはgroughにトラフ交換サーバー(どのバージョンを無視する)を送るか、うまく動作します。 – jachguate

+1

アクセントには、Delphi 2009より前のVCL/RTLではサポートされていないUnicodeを使用する必要があります。Indyは、Delphi 2007以前のUnicodeをサポートするために多くの手作業を余儀なくされていました。何かここに。 –

+0

AFAIKアクセントはUnicodeを必要としません - それをサポートするコンテンツ転送エンコーディングと文字セットだけです。たとえば、charset = "iso-8859-1"とContent-Transfer-Encodingの場合:quoted-printable –

答えて

2

正しいEnconding、ContentTransferEncoding、およびCharSetを設定してください。最も古いプロトコルの1つであるため、メールは7ビットのみを使用するコンピュータで使用するように設計されているため、US-ASCII以外の文字はエンコードする必要があります。いくつかの異なる方法があります(引用符で囲むことができます)。

また、OnInitializeISOイベントもチェックしてください。

+0

ありがとうございました。このソリューションは「MyIdMessage.Encoding:= meDefault;」でした。 – LaBracca

1

使用しています。

+0

US-ASCIIは、アクセントに最も適した文字セットではありません。ほとんどの西欧言語では、UTF-8を使用することができない場合は、ISO-8859-1またはISO-8859-15(ユーロ、フィンランド語/フランス語の完全サポート)を使用します。 Windows-1252はほぼISO-8859-1ですが、-15文字(コードポイントが異なる)も含まれています。他の言語では、異なる文字セット(またはUTF)が必要です。 –

+0

'US-ASCII'はそれを設定する方法の一例に過ぎず、彼らは彼らのニーズに合ったchar setを使うようにしました。 – MikeT

関連する問題