this.AddLogEntry("Creating message.");

 

// We create the message object

ActiveUp.Net.Mail.Message message = new ActiveUp.Net.Mail.Message();

 

// We assign the sender email

message.From.Email = this.fromEmailTextbox.Text;

 

// We assign the recipient email

message.To.Add(this.toEmailTextbox.Text);

 

// We assign the subject

message.Subject = this.subjectTextbox.Text;

 

// We assign the body text

message.BodyText.Text = this.bodyTextTextbox.Text;

 

// It is required to build the mime part tree before signing

message.BuildMimePartTree();

 

if (_tbSignature.Text != string.Empty)

{

    CmsSigner signer = new CmsSigner(new X509Certificate2(_tbSignature.Text));

 

    // Here we only want the signer's certificate to be sent along. Not the whole chain.

    signer.IncludeOption = X509IncludeOption.EndCertOnly;

 

    message.SmimeAttachSignatureBy(signer);

}

 

// We send the email using the specified SMTP server

this.AddLogEntry("Sending message.");

 

try

{

    message.Send(this.smtpServerAddressTextbox.Text);

 

    this.AddLogEntry("Message sent successfully.");

}

 

catch (SmtpException ex)

{

    this.AddLogEntry(string.Format("Smtp Error: {0}", ex.Message));

}

 

catch (Exception ex)

{

    this.AddLogEntry(string.Format("Failed: {0}", ex.Message));

}