Je ne sais pas comment utiliser le troisième paramètre lors de la configuration de smtp avec MailKit.
Voici ce que j'ai jusqu'à présent:
client.Connect(emailSettings.SmtpServer, emailSettings.SmtpPort , true);
Ma confusion est sur cette ligne:
// *************** SEND EMAIL ******************* using (var client = new MailKit.Net.Smtp.SmtpClient(new ProtocolLogger("smtp.log"))) { client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12; //accept all SSL certificates client.ServerCertificateValidationCallback = (s, c, h, e) => true; // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove("XOAUTH2"); // client.Connect(emailSettings.SmtpServer, emailSettings.SmtpPort, emailSettings.IsSslEnabled); client.Connect(emailSettings.SmtpServer, emailSettings.SmtpPort, emailSettings.AuthType); if (emailSettings.IsAuthenticationRequired) { // Note: only needed if the SMTP server requires authentication client.Authenticate(emailSettings.SmtpUsername, emailSettings.SmtpPassword); } if (emailSettings.TimeOut == 0) emailSettings.TimeOut = 10; client.Timeout = emailSettings.TimeOut * 1000; client.Send(message); client.Disconnect(true); }
J'ai la possibilité de transmettre true / false ou SecureSockOptions.
Voici ce que j'ai sur mon formulaire:
Je ne suis pas sûr de comprendre comment les deux paramètres différents affectent l'envoi des e-mails. Je suppose que j'utilise le vrai / faux pour useSsl ou SecureSockOptions? Je ne sais pas comment ces éléments fonctionnent ensemble.
Les options de SecureSockOptions sont:
Aucun Auto SslOnConnect StartTls StartTlsWhenAvailable
Ces options annulent-elles le besoin de useSsl?
3 Réponses :
useSsl
est une version simplifiée de SecureSocketOptions
.
Lorsque vous passez true
pour useSsl
, il correspond à SecureSocketOptions.SslOnConnect
.
Lorsque vous passez false
pour useSsl
, il correspond à SecureSocketOptions.StartTlsWhenAvailable
.
ok c'est ce que je voulais savoir. Ty pour avoir clarifié cela pour moi.
En regardant la documentation du mailkit La méthode Connect a 5 signatures différentes (paramètres différents)
Dans le cas du passage de booléen à Connect, cela signifie utiliser ssl si vrai et ne pas utiliser ssl si faux. Aucune méthode n'accepte à la fois les options booléennes et SecureSocketOptions.
http://www.mimekit.net/docs/html/Overload_MailKit_Net_Smtml_Smtm_Smtmtp
Vous devriez lire leur documentation sur le lien ci-dessus.
Cela peut également être utile d'après leur documentation:
L'argument useSsl contrôle uniquement si le client effectue ou non un Connexion enveloppée SSL. En d'autres termes, même si le paramètre useSsl est faux, SSL / TLS peut toujours être utilisé si le serveur de messagerie prend en charge le Extension STARTTLS.
Pour désactiver toute utilisation de SSL / TLS, utilisez l'option Connect (String, Int32, SecureSocketOptions, CancellationToken) avec une valeur de SecureSocketOptions.None à la place.
ty pour l'aide!
Vous devez l'utiliser lorsque vous avez un type de contrôleur de domaine de réseau interne de confiance ou une boîte de confiance également, lorsque vous sécurisez les transmissions (pas d'écoute) et par défaut, la plupart des serveurs de messagerie l'utilisent même si vous le codez et qu'il lit faux vous peut avoir une enveloppe système, c'est-à-dire lorsque le système lui-même le remplace en raison des niveaux inférieurs du modèle OSI. Je recommanderais personnellement de l'utiliser quand vous le pouvez, il résout quelques chutes de modèles de transmission plus anciens sur les demandes de main de synchronisation et a une valeur de délai d'attente plus élevée si je me souviens bien.