メールをテキストファイルとして保存する必要があるときにひとつひとつ開いてコピペするのは効率が悪い。そこでC#を使って効率よくテキストファイルに変換できないかと考えてみる。さてどうすればいいのでしょうか?

.NET用メール送受信クラスライブラリ (TKMP.DLL) があるので、ここはありがたく使わせていただきましょう。全部自分でやろうとすると大変なことになります。

.NET用メール送受信クラスライブラリ (TKMP.DLL)

ではどのようにプログラミングすればいいのでしょうか?

今回はYahoo!メールで考えます。設定は以下のようにする必要があります。

1件だけ取得するのであれば、これでうまくいきます。

全部を取得してファイルとして保存するのであれば・・・

まずデータを管理するためのクラスをつくります。必要なのはメールのタイトル、日時、本文だけだと思うので・・・

以下のメソッドはメールを取得してその結果をDataのリストで返します。

あとはこれを保存すればテキストファイルとして保存できます。

以下はユーザーにフォルダを指定させて、そこにテキストファイルとして保存するプログラムです。

以下はCSVファイルで保存するプログラムです。フィールドがコンマ、ダブルクォート、改行を含む場合はダブルクォートで囲まなければなりません。またフィールドに含まれるダブルクォートは2つ並べてエスケープします。