System.Net.Mail問題その2
この文書は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
他にも大きな問題があります。