The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン TKMPオブジェクト参照がオブジェクト インスタンスに設定さ
日時: 2010/06/07 19:44
名前: パンチ

こんにちは。
メーラーを作ろうとしている初心者です。
TKMPを使ってPOPでの自動ダウンローダーを作ろうとしています。
private void POP_Load(object sender, EventArgs e) {
//接続用の情報作成
TKMP.Net.BasicPopLogon bp = new TKMP.Net.BasicPopLogon(txtUserID.Text, txtPassword.Text);
int Port = 995;
//POPクライアントクラスの定義
PopClient = new TKMP.Net.PopClient(bp, txtAddress.Text, Port);
//接続開始
if (!PopClient.Connect()) {
PopClient.Close();
PopClient = null;
}

TKMP.Net.MailData[] Mails = PopClient.MailDatas;
string mail = ""
for (int i = 0; i < Mails.Length; i++) {
string 受信数 = "受信数 " + (i + 1).ToString() + " / " + Mails.Length.ToString();
TKMP.Net.MailData MailData = (TKMP.Net.MailData)Mails[i];
TKMP.Reader.MailReader reader = new TKMP.Reader.MailReader(MailData.HeaderStream, false);
mail += new TKMP.Reader.Header.DateTime(reader).Value.ToString("yyyy/MM/dd HH:mm");
mail += reader.HeaderCollection["From"];
mail += reader.HeaderCollection["Subject"];
mail += reader.MainText;

//添付ファイルの情報を表示
if (reader.FileCount != 0) {
mail += "-------------------------添付ファイル---------------------\r\n";
foreach (TKMP.Reader.File f in reader.FileCollection)
mail += f.FileName + " (" + f.FileSize.ToString() + "byte)\r\n";
mail += "----------------------------------------------------------\r\n";
}
saveFileName = reader.HeaderCollection["Subject"].Replace(":","").Replace("/","").Replace("<","").Replace(">","") + ".mail";
if (!File.Exists(saveFileName)) File.AppendAllText(saveFileName, item.text, Encoding.Default);
}
//Close();
}

これで、
TKMP.Reader.MailReader reader = new TKMP.Reader.MailReader(MailData.HeaderStream, false);
の行で、
オブジェクト参照がオブジェクト インスタンスに設定されていません。
のエラーとなります。
大変恐縮ですが、なにをインスタンスに登録したらよいか、ご示唆いただけないでしょうか。

環境は次のとおりです。
WindowsXP SP3
VisualC#2008
TKMPDLL 2.4.19

Page: 1 |

ファイル Re: TKMPオブジェクト参照がオブジェクト インスタンスに設定さ ( No.1 )
日時: 2010/06/07 23:27
名前: Toki◆pRU.c9X.EOI

TKMP.Reader.MailReader reader = new TKMP.Reader.MailReader(MailData.HeaderStream, false);

の前にメールデータの読み出しを行っていないのが原因だと思われます。

HeaderStreamを使用する前にReadHeaderメソッドを実行してください。

ファイル Re: TKMPオブジェクト参照がオブジェクト インスタンスに設定さ ( No.2 )
日時: 2010/06/08 00:29
名前: パンチ

Tokiさん、早速ありがとうございました。
ReadHeaderメソッドを実行したところ、タイトルその他を取得できました。

ありがとうございました。
TKMP、使わせていただきます。

Page: 1 |