SslException: illegal parameter on sending email on Mac (.NET Core)

I have started to see failures on my Mac for Aspose.Email when sending to SendGrid - this used to work, but no longer works, even when trying to move back to lower Aspose.Email versions.

Aspose.Email version: 19.4.0 (also tried 19.3.0 and 19.2.0)
Mac OS: 10.14.5 (previous version had same issue)
Platform: .Net
.Net Core runtime: 2.2.5
.Net Core SDK: 2.2.107

host: [smtp.sendgrid.com](http://smtp.sendgrid.com/)
port: 465
security: SSLImplicit

This is still working fine on Linux, its just on Mac that is not working any more…

The stack trace:

AsposeException: Authentication failed, see inner exception.
 ---> AsposeException: Authentication failed, see inner exception.
 ---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception. ---> Interop+AppleCrypto+SslException: illegal parameter
   at Interop.AppleCrypto.SslSetMinProtocolVersion(SafeSslHandle sslHandle, SslProtocols minProtocolId)
   at System.Net.SafeDeleteSslContext.SetProtocols(SafeSslHandle sslContext, SslProtocols protocols)
   at System.Net.SafeDeleteSslContext.CreateSslContext(SafeFreeSslCredentials credential, Boolean isServer)
   at System.Net.SafeDeleteSslContext..ctor(SafeFreeSslCredentials credential, SslAuthenticationOptions sslAuthenticationOptions)
   at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, SslAuthenticationOptions sslAuthenticationOptions)
   --- End of inner exception stack trace ---
   at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.Security.SslStream.AuthenticateAsClient(SslClientAuthenticationOptions sslClientAuthenticationOptions)
   at   .()
   at   .Read(Byte[] , Int32 , Int32 )
   at   .Read(Byte[] , Int32 , Int32 )
   at   .     (Byte[] , Int32 , Int32 )
   at   .()
   at   .     (O␉┘␊␌├ )
--- E┼␍ ⎺° ␋┼┼␊⎼ ␊│␌␊⎻├␋⎺┼ ⎽├▒␌┐ ├⎼▒␌␊ ---
   ▒├   .     (IAsyncResult )
   at   .(Boolean )
   at   .(String , Int32 , SecurityOptions )
   at   .(String , Int32 )
--- End of inner exception stack trace ---
   at   .(String , Int32 )
   at   .(   )
   ▒├   .     (   )
   at   .     (AsyncCallback , Object )
   at   .     ()
   at   .     (Int32 ,    )
   at   .      ()
   at   .     (AsyncCallback , Object )
   at Aspose.Email.Clients.Smtp.SmtpClient.Send(MailMessage message)

Any help would be greatly appreciated.

@sandcastle,

Can you please share sample project along with source files so that we may further investigate to help you out.

@Adnan.Ahmad - This is no longer happening with the 2.2.300/301 builds of .Net, not sure what the cause was in the end.

@sandcastle,

It’s good to know that things are fine on your end. Please feel free to share if you have any incurring issue.