Dart.Mail 名前空間 : Pop クラス |
<ToolboxItemAttribute(ToolboxItemType=System.Drawing.Design.ToolboxItem, ToolboxItemTypeName="System.Drawing.Design.ToolboxItem, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")> <LicenseProviderAttribute(1.3)> Public Class Pop Inherits MailBase
[ToolboxItem(ToolboxItemType=System.Drawing.Design.ToolboxItem, ToolboxItemTypeName="System.Drawing.Design.ToolboxItem, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] [LicenseProvider(1.3)] public class Pop : MailBase
柔軟なPOPメッセージのサポートを使用して、メッセージを簡単に取得できます。複数の認証方法、ユーザー指定Streamへのダウンロード、プロキシのサポート、コマンドの送信などの機能があります。
一般的な使用例の概要を以下に示します。C#およびVBのサンプルコードについては、「コード例」のトピックを参照してください。
簡単なセッション管理: Authenticateは、サーバーに接続して認証を行い、メールドロップに存在するメッセージに関する情報をMessagesに格納します。セッションはCloseを使用して明示的に閉じる必要があります。
メッセージの取得: メッセージを取得するには、Pop.Messages[n].Get()を使用します。メッセージはMailMessage.GetEncodingStream()オブジェクト(自動的にデコードする場合)またはその他の任意のユーザー指定Stream(エンコードされたメッセージを保存する場合)に取得できます。
"オンザフライ"デコード: パートはオンザフライでデコードされ、メモリまたはディスク(添付ファイルの場合)にストリームされます。これにより、メモリフットプリントが最小限に抑えられます。
進行状況の表示: Progressイベントにより、ダウンロード中に受信されたバイト数がリアルタイムに通知されます。
POPプロトコル通信の表示: Pop.Connection.Logイベントにより、TCP接続を通じて送信されたすべてのコマンドとデータにアクセスできます。
コントロール接続: Connectionによって公開されたTCP接続により、低レベルのプロパティやメソッドにアクセスできます。たとえば、これを使用してローカルIPアドレスやリモートIPアドレスなどのTCPレベルのプロパティを表示できます。
コマンドの送信: Connection.Write()とConnection.Read()を使用して、任意のコマンド(独自のコマンドを含む)を送受信できます。
private void getMessages(object sender) { // 接続してアカウントにログインします。 pop1.Connect(); pop1.Authenticate(true, true); // アカウントのすべてのメッセージをダウンロードし、一意のファイル名でディスクに保存します。 string messageFolder = Application.StartupPath + "\\messages"; foreach (PopMessage popMessage in pop1.Messages) { popMessage.Get(); popMessage.Message.Save(messageFolder + "\\" + popMessage.Id.ToString("D4") + ".eml"); } // セッションから適切にログアウトします。 pop1.Close(); } private void pop1_Progress(object sender, PopProgressEventArgs e) { // メッセージの受信状況に従ってプログレスバーを更新します。 progressBar1.Value = (e.Final) ? 0 : (int)((e.Position * 100) / e.Length); }
Private Sub getMessages(ByVal sender As Object) ' 接続してアカウントにログインします。 pop1.Connect() pop1.Authenticate(True, True) ' アカウントのすべてのメッセージをダウンロードし、一意のファイル名でディスクに保存します。 Dim messageFolder As String = Application.StartupPath & "\messages" For Each popMessage As PopMessage In pop1.Messages popMessage.Get() popMessage.Message.Save(messageFolder & "\" & popMessage.Id.ToString("D4") & ".eml") Next popMessage ' セッションから適切にログアウトします。 pop1.Close() End Sub Private Sub pop1_Progress(ByVal sender As Object, ByVal e As PopProgressEventArgs) Handles pop1.Progress ' メッセージの受信状況に従ってプログレスバーを更新します。 progressBar1.Value = If(e.Final, 0, CInt((e.Position * 100) \ e.Length)) End Sub
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
Dart.Mail.ComponentBase
Dart.Mail.MailBase
Dart.Mail.Pop