/// <summary>
        /// 获取安全套接字选项
        /// </summary>
        /// <returns></returns>
        protected virtual SecureSocketOptions GetSecureSocketOption()
        {
            var config = _mailKitConfigProvider.GetConfig();

            if (config.SecureSocketOption.HasValue)
            {
                return(config.SecureSocketOption.Value);
            }

            var emailConfig = _emailConfigProvider.GetConfig();

            return(emailConfig.EnableSsl ? SecureSocketOptions.SslOnConnect : SecureSocketOptions.StartTlsWhenAvailable);
        }
Exemple #2
0
        /// <summary>
        /// 配置SMTP客户端
        /// </summary>
        /// <param name="client">SMTP客户端</param>
        protected virtual void ConfigureClient(SmtpClient client)
        {
            var emailConfig   = _emailConfigProvider.GetConfig();
            var mailKitConfig = _mailKitConfigProvider.GetConfig();

            if (mailKitConfig.ServerCertificateValidationCallback.HasValue)
            {
                client.ServerCertificateValidationCallback = (s, c, h, e) => mailKitConfig.ServerCertificateValidationCallback.Value;
            }
            client.Connect(emailConfig.Host, emailConfig.Port, GetSecureSocketOption());
            if (emailConfig.UseDefaultCredentials)
            {
                return;
            }
            client.Authenticate(emailConfig.UserName, emailConfig.Password);
        }