GrapeCity Secure Mail for .NET 4.0J
Progress イベント (Smtp)
使用例 

電子メールメッセージの送信中に繰り返し発生します。
シンタックス
<CategoryAttribute("Progress")>
<DescriptionAttribute("Raised repeatedly while a message is being sent.")>
Public Event Progress As EventHandler(Of SmtpProgressEventArgs)
[Category("Progress")]
[Description("Raised repeatedly while a message is being sent.")]
public event EventHandler<SmtpProgressEventArgs> Progress
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、SmtpProgressEventArgs 型の引数を受け取りました。次の SmtpProgressEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
Final Dart.Mail.ProgressEventArgsから継承されます。これが特定のメッセージに対して発生した最後のProgressイベントである場合、trueを返します。
Length Dart.Mail.ProgressEventArgsから継承されます。メッセージデータの長さ。
Message 送信中のMailMessage。Send(Stream,String,String)が使用された場合はnullを返します。
Position Dart.Mail.ProgressEventArgsから継承されます。メッセージデータ内の位置。
解説

進行状況に関するデータ(バイト位置や長さなど)を含むSmtpProgressEventArgsが提供されます。 ProgressBarを使用して進行状況を表示するには、System.Windows.Forms.ProgressBar.Minimumとして0、System.Windows.Forms.ProgressBar.MaximumとしてLengthSystem.Windows.Forms.ProgressBar.ValueとしてPositionを、それぞれ使用します。 Visual Studio .NET環境でイベントを使用する方法については、「Using Events Within The Visual Studio.NET Environment」を参照してください。

MailSession.BlockSizeによって粒度が制御されます。

Smtpコンポーネントを参照として使用する場合は、自分でメソッドを作成してイベントに接続する必要があります。「Using Events When A Component Is Used As A Reference」を参照してください。

このイベントをUIスレッドにマーシャリングできるようにするには、ComponentBase.SynchronizingObjectを設定します。

使用例
Smtpコンポーネントを使用して、添付ファイルの付いたテキストメッセージを送信します。
private void sendMail(object sender)
{
    // 送信するメッセージを作成します。
    MailMessage message = new MailMessage();
    message.To = toAddress;
    message.From = fromAddress;
    message.Subject = "File Attached";
    message.Text = "Please see the attached file.";

    // 添付ファイルを追加します。
    message.Attachments.Add(new Attachment(Application.StartupPath + "\\myImage.jpg"));

    // セッションパラメーターを設定します。
    smtp1.Session.RemoteEndPoint = 
        new Dart.Mail.IPEndPoint(myMailServer, Smtp.GetDefaultPort(smtp1.Session));
    smtp1.Session.Username = myUsername;
    smtp1.Session.Password = myPassword;

    // メッセージを送信します。
    smtp1.Send(message);

    // 適切にログアウトします。
    smtp1.Close();
}

private void smtp1_Progress(object sender, SmtpProgressEventArgs e)
{
    // メッセージの送信状況に従ってプログレスバーを更新します。
    progressBar1.Value = (e.Final) ? 0 : (int)((e.Position * 100) / e.Length);
}
Private Sub sendMail(ByVal sender As Object)
    ' 送信するメソッドを作成します。
    Dim message As New MailMessage()
    message.To = toAddress
    message.From = fromAddress
    message.Subject = "File Attached"
    message.Text = "Please see the attached file."

    ' 添付ファイルを追加します。
    message.Attachments.Add(New Attachment(Application.StartupPath & "\myImage.jpg"))

    ' セッションパラメーターを設定します。
    smtp1.Session.RemoteEndPoint = New Dart.Mail.IPEndPoint(myMailServer, Smtp.GetDefaultPort(smtp1.Session))
    smtp1.Session.Username = myUsername
    smtp1.Session.Password = myPassword

    ' メッセージを送信します。
    smtp1.Send(message)

    ' 適切にログアウトします。
    smtp1.Close()
End Sub

Private Sub smtp1_Progress(ByVal sender As Object, ByVal e As SmtpProgressEventArgs) Handles smtp1.Progress
    ' メッセージの送信状況に従ってプログレスバーを更新します。
    progressBar1.Value = If(e.Final, 0, CInt((e.Position * 100) \ e.Length))
End Sub
参照

参照

Smtp クラス
Smtp メンバ

 

 


© 2003, GrapeCity inc. All rights reserved.