GrapeCity Secure Mail for .NET 4.0J
メールの取得中に進行状況を表示する(POP)

メールの受信処理中には、PopクラスのProgressイベントが発生します。このイベントを利用すると、進行状況をプログレスバーで表示するといった動作が可能です。

以下のサンプルコードでは、受信メール全体とメール1件ごとの受信処理の進行状況を、プログレスバー上に表示しています。

Imports Dart.Mail
Imports Dart.Mail.Pop

Private Sub getAllMessages(ByVal sender As Object)
  ' 受信メール全体の進行状況を表示するプログレスバーを設定します。
  ' POPサーバーとの接続後、Pop1.Messages.Countにはメールの件数が入っています。
  ProgressBar1.Minimum = 0
  ProgressBar1.Maximum = Pop1.Messages.Count
  ProgressBar1.Value = 0

  ' すべてのメールを受信します。
  For Each popMessage As PopMessage In Pop1.Messages
    ' メールを取得します。
    popMessage.Get()
    
    ' 取得したメールをファイルに保存します。
    popMessage.Message.Save("c:\temp\" & (popMessage.Message.Date).ToString("yyyyMMdd_hhmmss") & ".eml")
  Next popMessage

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

Private Sub Pop1_Progress(sender As Object, e As PopProgressEventArgs) Handles Pop1.Progress
  ' 受信メール全体の進行状況をProgressBar1に表示します。
  ' Idプロパティの値は、1〜Pop1.Messages.Countの範囲で変化します。
  ProgressBar1.Value = e.Message.Id

  If e.Final = False Then
    ' 受信メール1件ごとの進行状況をProgressBar2に表示します。
    ProgressBar2.Minimum = 0
    ProgressBar2.Maximum = e.Length
    ProgressBar2.Value = e.Position
  Else
    ' メール受信処理の完了時には、プログレスバーをMax表示にします。
    ProgressBar2.Value = ProgressBar2.Maximum
  End If
End Sub
using Dart.Mail;
using Dart.Mail.Pop;

private void getAllMessages(object session)
{
  // 受信メール全体の進行状況を表示するプログレスバーを設定します。
  // POPサーバーとの接続後、Pop1.Messages.Countにはメールの件数が入っています。
  progressBar1.Minimum = 0;
  progressBar1.Maximum = pop1.Messages.Count;
  progressBar1.Value = 0;

  // すべてのメールを受信します。
  foreach (PopMessage popMessage in pop1.Messages)
  {
    // メールを取得します。
    popMessage.Get();
    
    // 取得したメールをファイルに保存します。
    popMessage.Message.Save(@"c:\temp\" & (popMessage.Message.Date).ToString("yyyyMMdd_hhmmss") + ".eml");
  }

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

private void pop1_Progress(object sender, PopProgressEventArgs e)
{
  // 受信メール全体の進行状況をProgressBar1に表示します。
  // Idプロパティの値は、1〜Pop1.Messages.Countの範囲で変化します。
  progressBar1.Value = e.Message.Id;

  if (e.Final)
  {
    // 受信メール1件ごとの進行状況をProgressBar2に表示します。
    progressBar2.Minimum = 0;
    progressBar2.Maximum = (int)(e.Length);
    progressBar2.Value = (int)(e.Position);
  }
  else
  {
    // メール受信処理の完了時には、プログレスバーをMax表示にします。
    progressBar2.Value = progressBar2.Maximum;
  }
}

 

 


© 2003, GrapeCity inc. All rights reserved.