2011-11-11 31 views
1

私は、SMTP経由で送信されるプレーンテキストメールにUnicode文字を追加したいと考えています。私たちの実装はUnicodeはこの方法をコードに指定することが容易になり、.NETのSystem.Net.Mail、に基づいています。SMTPのUnicode:何の理由もありませんか?

message.BodyEncoding = System.Text.Encoding.UTF8; 

でも英語のため、Unicodeに切り替え、私は箇条書きを含めることができるようになる(UnicodeコードポイントU +2022 =•)を入力します。別のHTML電子メール本文では、箇条書きのリストに<ul>要素を使用できますが、プレーンテキストの電子メールでは、箇条書きにアスタリスクまたはダッシュを使用するよりも醜い解決策が欲しいと思います。

SMTPでUnicodeエンコーディングを使用することには欠点がありますか?このエンコーディングのために受信者の中にはメールを受信したり読むことができないと心配する必要がありますか?

+0

SMTPは心配する必要はありません。これはトランスポートであり、すべてのコンテンツを処理します。受信者 - Unicodeを使用するように更新されていないシステムでコマンドライン電子メールリーダーを使用しているUnixの中毒者に送信しない限り、あなたは大丈夫です –

+0

デフォルトでは、SMTPはUTF-8などの8ビットデータの転送をサポートしていません。 SMTPサーバはSMTPプロトコルへの8BIT拡張をサポートしなければならず、クライアントはそれらの使用を要求しなければならないか、電子メールは 'base64'や' quoted-printable'のような7bitフレンドリなトランスポートエンコーディングでエンコードされなければなりません。 –

答えて

1

、私は信じています。

まず、未処理のSMTPプロトコルはUTF-8を処理しません。しかし、そのサポートを追加する拡張機能が広く配備されており、コードが正しいマジックを使用している限り問題はありません。おそらくあなたが言及する実装は十分です。

第2に、UTF-8メッセージが受信者にそのまま送信されても​​、メールクライアントがUTF-8を正しく処理するかどうかという疑問があります。基本的なサポートは広く普及していると私は信じていますが、一部の古いクライアントには問題があるかもしれません。受信者が正しいフォントを持っていない可能性があるため、エキゾチックな文字を使用すると問題が発生することがあります。ただし、HTML電子メールを処理するクライアントは、UTF-8も処理する可能性があります。

可能性のある受信者がわかっている場合は、セットアップでテストすることをおすすめします。

1

私は現在、ユニコードをサポートしていないメールクライアントについては知らない。とにかく、短期間のテストが望ましいでしょう(少なくとも、あなたのクライアントにどのクライアントが使用しているかを聞いてください)。あなたが異常に巨大なメッセージを持っていない限り、増加したメッセージサイズの欠点は数えません。

(余談注:?私はかなりプレーンテキストメールメッセージでアスタリスクを使用しています、彼らは本当に醜いです)この質問には、いくつかの層があります

関連する問題