SmtpTlsStarted Event
Occurs when the connection with the server becomes secure.

Namespace: MailBee.SmtpMail
Assembly: MailBee.NET (in MailBee.NET.dll) Version: 12.4 build 677 for .NET 4.5
public event TlsStartedEventHandler TlsStarted


Type: MailBeeTlsStartedEventHandler
This event is raised when TLS/SSL negotiation completes and TLS session successfully starts. Usually, this happens as a result of successful completion of StartTls method or if automatic TLS/SSL negotiation was requested via setting SslMode property of the active SmtpServer object to non-Manual value.
This console sample demonstrates that TlsStarted event is raised during executing Hello method when SslMode property of the active SmtpServer object is set to UseStartTls value.
using System;
using MailBee;
using MailBee.SmtpMail;
using MailBee.Security;

class Sample
    // TlsStarted event handler.
    private static void OnTlsStarted(object sender, TlsStartedEventArgs e)
        // This will happen during Hello method execution.
        Console.WriteLine("TLS/SSL session started.");

    // The actual code.
    static void Main(string[] args)
        Smtp mailer = new Smtp();

        // Subscribe to TlsStarted event.
        mailer.TlsStarted += new TlsStartedEventHandler(OnTlsStarted);

        // Notify MailBee it should start TLS/SSL session when appropriate.
        // The connection is made to the regular port so that STLS command
        // will be used to start TLS/SSL session.
        SmtpServer server = new SmtpServer("");
        server.SslMode = SslStartupMode.UseStartTls;


        Console.WriteLine("Connected to the server. Will send greeting now...");

        // TLS/SSL negotiation will take place here. Thus, any subseqeunt commands
        // such as sending user credentials or mail message submission will take
        // place under secure TLS/SSL layer.
        // Note: EHLO command will be sent twice: first, before TLS/SSL negotiation;
        // second, after. This is because capability list presented by EHLO response
        // can change after TLS negotiation.

        Console.WriteLine("Hello completed successfully.");

        // Can send mail, perform login or whatever here.

See Also