This event is raised when a certificate has been requested.
Syntax
| Visual Basic (Usage) | Copy Code |
|---|
Dim instance As Smtp
Dim handler As EventHandler
AddHandler instance.CertificateRequested, handler |
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