GrapeCity Secure Mail for .NET 4.0J
ヘッダ情報のみを取得する(IMAP)

IMAPサーバーからメールのヘッダ情報のみを取得するには、MailboxクラスGetメソッドを、引数MessageInfoにImapMessageInfo.Headerを指定して実行します。

すべてのメールを取得する処理は、特に大容量の添付ファイルをダウンロードする場合など、非常に時間がかかることがあります。このような場合は、メールのヘッダ情報のみを取得する方法が有効です。

以下のサンプルコードでは、メールの取得時に発生するProgressイベント内で、ヘッダの情報をListViewにセットしています。

Imports Dart.Mail
Imports Dart.Mail.Imap

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)

  ' ヘッダ情報を取得します。
  Imap1.Start(AddressOf ReceiveMailImapAllHeaders, Nothing)
End Sub

Private Sub ReceiveMailImapAllHeaders(ByVal sender As Object)
  ' "INBOX"メールボックスを選択します。
  Imap1.SelectedMailbox = Imap1.Mailboxes("INBOX")

  ' メールのヘッダ情報を取得します。
  Dim box As Mailbox = Imap1.SelectedMailbox
  box.Get(0, box.Count, ImapMessageInfo.Header)

  ' Imapサーバーとの接続を閉じます。
  Imap1.Close()
End Sub

Private Sub Imap1_Progress(sender As Object, e As ImapProgressEventArgs) Handles Imap1.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.Imap;

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);

  // ヘッダ情報を取得します。
  imap1.Start(ReceiveMailPopAllHeaders, null);
}

private void previewMessagesImap(object sender)
{
  // "INBOX"メールボックスを選択します。
  imap1.SelectedMailbox = imap1.Mailboxes["INBOX"];

  // メールのヘッダ情報を取得します。
  Mailbox box = imap1.SelectedMailbox;
  box.Get(0, box.Count, ImapMessageInfo.Header);

  // サーバーとの接続を閉じます。
  imap1.Close();
}

private void imap1_Progress(object sender, ImapProgressEventArgs 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));
  }
}

 

 


© 2003, GrapeCity inc. All rights reserved.