Dart.Mail 名前空間 > Smtp クラス : Progress イベント |
<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としてLength、System.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を設定します。
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