GrapeCity Secure Mail for .NET 4.0J > メールの受信(POP) > ヘッダ情報のみを取得する(POP) |
POPサーバーからメールのヘッダ情報のみを取得するには、PopMassageクラスのGetメソッドを、引数に 0 を指定して実行します。
すべてのメールを取得する処理は、特に大容量の添付ファイルをダウンロードする場合など、非常に時間がかかることがあります。このような場合は、メールのヘッダ情報のみを取得する方法が有効です。
Authenticateメソッドでサーバーへログインすると、サーバー上に保存されているメールの情報がMessagesプロパティ(PopMessage型のコレクション)に格納されますので、この情報を元に各メールへアクセスします。これはすべてのメールを取得する場合と同じです。
以下のサンプルコードでは、メールの取得時に発生するProgressイベント内で、ヘッダの情報をListViewにセットしています。
|
Imports Dart.Mail Imports Dart.Mail.Pop Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Form上のListViewを設定します。 ListView1.GridLines = True ListView1.View = View.Details ListView1.Columns.Add("差出人", 200, HorizontalAlignment.Left) ListView1.Columns.Add("件名", 200, HorizontalAlignment.Left) ListView1.Columns.Add("送信日時", 200, HorizontalAlignment.Left) ' ヘッダ情報を取得します。 Pop1.Start(AddressOf ReceiveMailPopAllHeaders, Nothing) End Sub Private Sub ReceiveMailPopAllHeaders(ByVal session As Object) ' サーバー上に保存されているすべてのメールを処理します。 For Each popMessage As PopMessage In Pop1.Messages ' メールのヘッダ情報を取得します。 popMessage.Get(0) Next popMessage ' POPサーバーとの接続を閉じます。 Pop1.Close() End Sub Private Sub Pop1_Progress(sender As Object, e As PopProgressEventArgs) Handles Pop1.Progress If e.Final Then ' 1つのメールについて情報の取得が完了したら、 ' ヘッダ情報から、From、Subject、送信日時を取得します。 Dim header() As String = {e.Message.Message.From, e.Message.Message.Subject, e.Message.Message.Date.ToString()} ' 取得したヘッダ情報をListViewにセットします。 ListView1.Items.Add(New ListViewItem(header)) End If End Sub
using Dart.Mail; using Dart.Mail.Pop; private void Form1_Load(object sender, EventArgs e) { // Form上のListViewを設定します。 ListView1.GridLines = true; ListView1.View = View.Details; ListView1.Columns.Add("差出人", 200, HorizontalAlignment.Left); ListView1.Columns.Add("件名", 200, HorizontalAlignment.Left); ListView1.Columns.Add("送信日時", 200, HorizontalAlignment.Left); // ヘッダ情報を取得します。 pop1.Start(ReceiveMailPopAllHeaders, null); } private void ReceiveMailPopAllHeaders(object session) { // サーバー上に保存されているすべてのメールを処理します。 foreach (PopMessage popMessage in pop1.Messages) { // メールのヘッダ情報を取得します。 popMessage.Get(0); } // POPサーバーとの接続を閉じます。 pop1.Close(); } private void pop1_Progress(object sender, PopProgressEventArgs e) { if (e.Final) { // 1つのメールについて情報の取得が完了したら、 // ヘッダ情報から、From、Subject、送信日時を取得します。 string[] header = { e.Message.Message.From, e.Message.Message.Subject, e.Message.Message.Date.ToString() }; // 取得したヘッダ情報をListViewにセットします。 ListView1.Items.Add(new ListViewItem(header)); } }