This event is raised when a certificate has been received to be authenticated.
Syntax
Event Data
The event handler receives an argument of type CertificateReceivedEventArgs containing data related to this event. The following CertificateReceivedEventArgs properties provide information specific to this event.
| Property | Description |
|---|
| Accept | Controls whether or not the certificate is accepted. |
| Certificate | The certificate received for authentication. |
| RemoteEndPoint | Returns the endpoint of the remote host. |
| TrustedRoot | Returns whether or not the certificate is from a Trusted Root Authority. |
| ValidDate | Returns whether or not the current time-date is within the certificate's life span. |
| ValidName | Returns whether or not the name is valid. |
Example
The following example demonstrates using SMTP over SSL.
| Visual Basic | Copy Code |
|---|
' Be sure to import the namespace by putting "Imports Dart.PowerTCP.Mail"
' at the top of your class.
Private Sub SmtpSSLTest()
' Use explicit SSL
Smtp1.Security = Dart.PowerTCP.Mail.Security.Explicit
' Send a message, it will initiate an SSL connection
Smtp1.Server = "MyMailServer"
Smtp1.Send("you@dart.com", "me@dart.com", "SSL Test", "Hello")
MessageBox.Show("Message Sent")
End Sub
Private Sub Smtp1_CertificateReceived(ByVal sender As Object, e As Dart.PowerTCP.Mail.CertificateReceivedEventArgs) Handles Smtp1.CertificateReceived
Dim msg As String = ""
' Check to see if the certificate is from a trusted root.
If Not e.TrustedRoot Then
msg += "This certificate is not from a trusted root" + vbCrLf
End If
' Check to see if the certificate has a valid date.
If Not e.ValidDate Then
msg += "This certificate does not have a valid date" + vbCrLf
End If
' Check to see if the certificate has a valid name.
If Not e.ValidName Then
msg += "This certificate does not have a valid name" + vbCrLf
End If
If msg <> "" Then
msg += "Would you like to accept this certificate anyway?"
If MessageBox.Show(msg, "Invalid Cert Received", MessageBoxButtons.YesNo) = DialogResult.Yes Then
' User wants to accept the invalid cert. Accept it.
e.Accept = True
End If
End If
End Sub
Private Sub Smtp1_CertificateRequested(ByVal sender As Object, e As EventArgs) Handles Smtp1.CertificateRequested
' Create a new instance of CertificateListForm
Dim certForm as new CertificateListForm(True, True)
certForm.Text = "The Server Requested A Client Certificate"
' Show the CertificateListForm to the user and let them choose a certificate
If certForm.ShowDialog() = DialogResult.OK Then
' Set the Certificate property to the certificate the user selected.
Smtp1.Certificate = certForm.SelectedCertificate
Else
MessageBox.Show("You must select a cert. SSL communication will fail.")
End If
End Sub |
| C# | Copy Code |
|---|
// Be sure to import the namespace by putting "using Dart.PowerTCP.Mail;"
// at the top of your class.
private void SmtpSSLTest()
{
// Use explicit SSL
smtp1.Security = Dart.PowerTCP.Mail.Security.Explicit;
// Send a message, it will initiate an SSL connection
smtp1.Server = "MySmtpServer";
smtp1.Send("you@dart.com", "me@dart.com", "SSL Test", "Hello");
MessageBox.Show("Message Sent");
}
private void smtp1_CertificateReceived(object sender, Dart.PowerTCP.Mail.CertificateReceivedEventArgs e)
{
string msg = "";
// Check to see if the certificate is from a trusted root.
if(!e.TrustedRoot)
msg+= "This certificate is not from a trusted root\n";
// Check to see if the certificate has a valid date.
if(!e.ValidDate)
msg+= "This certificate does not have a valid date\n";
// Check to see if the certificate has a valid name.
if(!e.ValidName)
msg+= "This certificate does not have a valid name\n";
if(msg != "")
{
msg += "Would you like to accept this certificate anyway?";
if(MessageBox.Show(msg, "Invalid Cert Received", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// User wants to accept the invalid cert. Accept it.
e.Accept = true;
}
}
}
private void smtp1_CertificateRequested(object sender, System.EventArgs e)
{
// Create a new instance of CertificateListForm
CertificateListForm certForm = new CertificateListForm(true, true);
certForm.Text = "The Server Requested A Client Certificate";
// Show the CertificateListForm to the user and let them choose a certificate
if(certForm.ShowDialog() == DialogResult.OK)
{
// Set the Certificate property to the certificate the user selected.
smtp1.Certificate = certForm.SelectedCertificate;
}
else
{
MessageBox.Show("You must select a cert. SSL communication will fail.");
}
} |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 2.0
See Also