Begins an asynchronous request to start TLS/SSL negotiation with the server.
An IAsyncResult that references the asynchronous TLS/SSL negotiation.
This method is an asynchronous version of StartTls.
| Exception Type | Condition |
|---|---|
| MailBeeInvalidStateException | There is already an operation in progress. |
Asynchronous TLS/SSL negotiation with the POP3 server in WinForms application. This sample also handles TlsStarted event. Wait method is used to wait for the asynchronous method completion, since .NET's standard WaitOne cannot process events.
[C#] // To use the code below, import MailBee namespaces at the top of your code using MailBee; using MailBee.Pop3Mail; // Put the code below inside your class // TlsStarted event handler private void OnTlsStarted(object sender, TlsStartedEventArgs e) { MessageBox.Show("TLS/SSL negotiation complete. Secure connection is ready."); } // The actual code private void Form1_Load(object sender, System.EventArgs e) { Pop3 pop = new Pop3(); // Let MailBee process events pop.RaiseEventsViaMessageLoop = false; pop.TlsStarted += new TlsStartedEventHandler(OnTlsStarted); pop.Connect("mail.domain.com"); // Initiate an asynchronous TLS/SSL negotiation pop.BeginStartTls(null, null); // Simulate some lengthy work here... for (int i = 0; i < 100; i++) { // Make a portion of the work System.Threading.Thread.Sleep(10); // Process events which were raised during execution of the work above pop.Wait(0); } // If the connection was not established during execution of the lengthy // work, wait until it's established pop.Wait(); // End the connection request pop.EndStartTls(); // The connection is now under TLS/SSL layer! // Disconnect from the server pop.Disconnect(); }
[Visual Basic] ' To use the code below, import MailBee namespaces at the top of your code Imports MailBee Imports MailBee.Pop3Mail; ' Put the code below inside your class ' TlsStarted event handler Private Shared Sub OnTlsStarted(ByVal sender As Object, ByVal e As TlsStartedEventArgs) MsgBox("TLS/SSL negotiation complete. Secure connection is ready.") End Sub ' The actual code Private Shared Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim pop As New Pop3 ' Let MailBee process events pop.RaiseEventsViaMessageLoop = False AddHandler pop.TlsStarted, AddressOf OnTlsStarted pop.Connect("mail.domain.com") ' Initiate an asynchronous TLS/SSL negotiation pop.BeginStartTls(Nothing, Nothing) ' Simulate some lengthy work here... Dim i As Integer For i = 1 To 100 ' Make a portion of the work System.Threading.Thread.Sleep(10) ' Process events which were raised during execution of the work above pop.Wait(0) Next ' If the connection was not established during execution of the lengthy ' work, wait until it's established. pop.Wait() ' End the connection request. pop.EndStartTls() ' The connection is now under TLS/SSL layer! ' Disconnect from the server pop.Disconnect() End Sub
Pop3 Class | MailBee.Pop3Mail Namespace | StartTls