中の技術日誌
 

System.Net.Mail問題その2

2006/07/27

この文書はVisual Studio 2005(.NET2.0)をベースに記述されています。それ以降のバージョンや、あなたが読んでいる時点では変更されている可能性があります。

新しく.NET 2.0で実装されたSystem.Net.Mailは確かによく考えてあるクラス群です。

ただしそれも日本環境では困ったものです。

まず最低限利用するためにすべきことはエンコードを設定することです。

   System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("mail.wankuma。com");
   System.Net.Mail.MailMessage ms = new System.Net.Mail.MailMessage("naka@wankuma。com", "naka@wankuma。com");
   ms.Subject = "日本語すbじぇct";
   ms.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-2022-JP");
   ms.Body = "あbc\r\n.\r\n";
   ms.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-2022-JP");
   client.Send(ms);

このようにSubject, BodyのエンコードにISO-2022-JPと設定することによってSubjectとBodyはISO-2022-JPのエンコードされるようになります。

From naka@wankuma。com  Mon Jul 24 00:50:10 2006
Return-Path: <naka@wankuma。com>
X-Original-To: naka@wankuma。com
Delivered-To: naka@wankuma。com
Received: from wanx64 (unknown [202.212.192.110])
        by mail.wankuma.com (Postfix) with ESMTP id 268DE10B545
        for <naka@wankuma。com>; Mon, 24 Jul 2006 00:50:10 +0900 (JST)
mime-version: 1.0
From: naka@wankuma。com
To: naka@wankuma。com
date: 24 Jul 2006 01:06:27 +0900
subject: =?iso-2022-jp?Q?=1B$BF|K\8l$9#b$8$'#c#t=1B(B?=
content-type: text/plain; charset=iso-2022-jp

content-transfer-encoding: quoted-printable
Message-Id: <20060723155010.268DE10B545@mail.wankuma.com>

=1B$B$"=1B(B=0D=0A=1B$B#b=1B(B=0D=0A=1B$B#c=1B(B

ただしいろいろな意味で、日本語環境でのデファクトではありません。

Qエンコードされている

>=?iso-2022-jp?Q?xxxx?=

quoted-printableモードになっている
 

>quoted-printable

7bitエンコードされていない

>Content-Transfer-Encoding: 7bit

他にも大きな問題があります。


勉強会: 05/18 大阪 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告