diff --git a/src/Senders/FluentEmail.MailKit/MailKitSender.cs b/src/Senders/FluentEmail.MailKit/MailKitSender.cs index 8a5d1413..c0b8a3f7 100644 --- a/src/Senders/FluentEmail.MailKit/MailKitSender.cs +++ b/src/Senders/FluentEmail.MailKit/MailKitSender.cs @@ -5,6 +5,7 @@ using MimeKit; using System; using System.IO; +using System.Net.Security; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -54,6 +55,12 @@ public SendResponse Send(IFluentEmail email, CancellationToken? token = null) using (var client = new SmtpClient()) { + client.CheckCertificateRevocation = _smtpClientOptions.CheckCertificateRevocation; + if(_smtpClientOptions.ServerCertificateValidationCallback != null) + { + client.ServerCertificateValidationCallback = _smtpClientOptions.ServerCertificateValidationCallback; + } + if (_smtpClientOptions.SocketOptions.HasValue) { client.Connect( @@ -116,6 +123,12 @@ public async Task SendAsync(IFluentEmail email, CancellationToken? using (var client = new SmtpClient()) { + client.CheckCertificateRevocation = _smtpClientOptions.CheckCertificateRevocation; + if (_smtpClientOptions.ServerCertificateValidationCallback != null) + { + client.ServerCertificateValidationCallback = _smtpClientOptions.ServerCertificateValidationCallback; + } + if (_smtpClientOptions.SocketOptions.HasValue) { await client.ConnectAsync( diff --git a/src/Senders/FluentEmail.MailKit/SmtpClientOptions.cs b/src/Senders/FluentEmail.MailKit/SmtpClientOptions.cs index fa21953a..05c783a5 100644 --- a/src/Senders/FluentEmail.MailKit/SmtpClientOptions.cs +++ b/src/Senders/FluentEmail.MailKit/SmtpClientOptions.cs @@ -1,4 +1,5 @@ using MailKit.Security; +using System.Net.Security; namespace FluentEmail.MailKitSmtp { @@ -14,5 +15,7 @@ public class SmtpClientOptions public bool UsePickupDirectory { get; set; } = false; public string MailPickupDirectory { get; set; } = string.Empty; public SecureSocketOptions? SocketOptions { get; set; } + public bool CheckCertificateRevocation { get; set; } = true; + public RemoteCertificateValidationCallback ServerCertificateValidationCallback { get; set; } } }