ファイルの最初の行 (ヘッダーの最初の行) が次のような電子メール ファイルを読んでいます。
X-RCPT-TO-LIST: 1,2,3
次のように CDO と ADODB を使用してロードしています。
ADODB.Stream stream = new ADODB.Stream();
stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, string.Empty);
stream.LoadFromFile(filename);
stream.Flush();
CDO.Message msg = new CDO.Message();
msg.DataSource.OpenObject(stream, "_Stream");
msg.DataSource.Save();
次に、次のようなフィールドを取得しようとしています。
ADODB.Field f = msg.Fields["urn:schemas:httpmail:X-RCPT-TO-LIST"];
これは機能しません。空のフィールド (null 値) を返します。
デバッガーでフィールドを見ると、フィールド名が次のようになっていることがわかります。
urn:schemas:mailheader:ÿþx-rcpt-to-list
これらの変な文字を探せば私のコードはうまくいくと思いますが、電子メールごとに変わってしまうのではないかと心配しています。これらの奇妙なキャラクターが追加された理由はありますか? カスタム ヘッダー フィールドにアクセスするより良い方法はありますか (自分でファイルを読み取って解析する必要はありません)。
このテストは、すべての最新のパッチ (SP3 だと思います) を適用した Windows XP で実行しています。
タグ付けが間違っていたらごめんなさい。タグを見つけるのに苦労しました。明らかでない場合は、C# を使用しています。
これが電子メール ファイル全体です。いくつかの迷惑メール (プライバシー上の理由からいくつか) を削除しましたが、この正確なバージョンで再テストし、同じ結果が得られました。
X-RCPT-TO-LIST: 1,2,3
Received: by mail-ia0-f172.google.com with SMTP id l29so4135896iag.3
for <423a777e2af27f463b801fe2eb2242cbdf1d934000000001@users.domain.com>; Fri, 22 Mar 2013 19:52:00 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.50.195.134 with SMTP id ie6mr6320542igc.6.1364007120542;
Fri, 22 Mar 2013 19:52:00 -0700 (PDT)
Received: by 10.50.169.39 with HTTP; Fri, 22 Mar 2013 19:52:00 -0700 (PDT)
Date: Fri, 22 Mar 2013 19:52:00 -0700
Message-ID: <XXXXXXXX63pPLB9QYu=04W3mU3Ynhkjf2bdYYZqv5oVvQ__u1vg@mail.gmail.com>
Subject: test4
From: <xxxxx2003@gmail.com>
To: 423a777e2af27f463b801fe2eb2242cbdf1d934000000001 <423a777e2af27f463b801fe2eb2242cbdf1d934000000001@users.domain.com>
Content-Type: multipart/alternative; boundary=14dae9340b45e63f6204d88ea7fa
--14dae9340b45e63f6204d88ea7fa
Content-Type: text/plain; charset=UTF-8
test4
--
xxxxxx@gmail.com
I don't check *this account* very often
--14dae9340b45e63f6204d88ea7fa
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">test4<br clear=3D"all"><div><br>-- <br><div><a href=3D"mai=
lto:xxxxx@gmail.com" target=3D"_blank">xxxxx@gmail.com</a></div>
<div>I don't check <b>this account</b> very often</div>
<div>=C2=A0</div>
</div></div>
--14dae9340b45e63f6204d88ea7fa--
X-RCPT-TO-LIST 行は、RCPT TO:<> 行を内部ユーザー ID に変換する電子メール サーバーのコードによって追加されます。そうすれば、後でこれらのファイルを処理する私のスレッドは、メールをどこに置くべきかを知ることができます。情報を別のファイルなどに保存したくありません。現在のデザインが気に入っているので、CDO/ADODB がメッセージ ヘッダーを奇妙な名前に変換している理由を知りたいだけです。 Unicode 対 ASCII か何か間抜けなのか。