GrapeCity Secure Mail for .NET 4.0J > メールの受信(POP) > メールの取得中に進行状況を表示する(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; } }