leex01
Goto Top

Problem installing Mailkit

Hallo,

nachdem man in Zukunft Send-MailMessage nicht mehr verwenden soll wollte ich mir Mailkit anschauen aber beim Versuch Mailkit zu installieren bekomme ich diese Fehlermeldungen. Kennt jemand eine Lösung?

Install-Package MailKit
oder
Install-Package -Name 'MailKit' -Source 'nuget.org'  

Windows Powershell 5.1
Install-Package : Unable to find dependent package(s)
(runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl)
In Zeile:1 Zeichen:1
+ Install-Package MailKit
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (runtime.osx.10....ography.OpenSsl:String) [Install-Package], Exception
    + FullyQualifiedErrorId : UnableToFindDependencyPackage,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPack
   age

Powershell Core 7
Install-Package: Dependency loop detected for package 'MailKit'.  

Danke im Voraus

Content-ID: 599351

Url: https://administrator.de/contentid/599351

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

145033
145033 26.08.2020 aktualisiert um 16:36:53 Uhr
Goto Top
Folgende Packages von Nuget herunterladen und die unten stehenden DLLs entpacken.
Dann diese drei DLLs in dieser Reihenfolge in der Powershell laden
Add-Type -Path ".\BouncyCastle.Crypto.dll"  
Add-Type -Path ".\MimeKit.dll"  
Add-Type -Path ".\MailKit.dll"  
Dann steht der .NET Namespace von Mailkit zur Verfügung
145033
Lösung 145033 26.08.2020 aktualisiert um 17:40:06 Uhr
Goto Top
Wenn du im Moment unbedingt "Install-Package" benutzen willst dann so (das sind alle nötigen Abhängigkeiten für Mailkit)
Install-Package -Name Portable.BouncyCastle -Force -RequiredVersion 1.8.5
Install-Package -Name Mimekit -Force -SkipDependencies
Install-Package -Name Mailkit -Force -SkipDependencies

Und dann so in die Powershell Session laden

Add-Type -Path "C:\Program Files\PackageManagement\NuGet\Packages\Portable.BouncyCastle.1.8.5\lib\net40\BouncyCastle.Crypto.dll"  
Add-Type -Path "C:\Program Files\PackageManagement\NuGet\Packages\MimeKit.2.9.1\lib\net45\MimeKit.dll"  
Add-Type -Path "C:\Program Files\PackageManagement\NuGet\Packages\MailKit.2.8.0\lib\net45\MailKit.dll"  
Und dann so benutzen

https://adamtheautomator.com/how-to-send-email-securely-with-powershell/
LeeX01
LeeX01 26.08.2020 um 19:10:56 Uhr
Goto Top
Danke für den Artikel, damit hat alles angefangen face-smile

Funktioniert aber so richtig ausgereift wirkt das alles noch nicht.

Nur zur Info: Die Windows PS sagt bei "Install-Package -Name Portable.BouncyCastle -Force -RequiredVersion 1.8.5" das Paket ist nicht zu finden und weigert sich nach der Installation über Core PS auch die DLL zu laden. Zum Glück reicht es aber bei beiden (Windows und Core PS) die anderen beiden DLLs zu laden und es läuft.

Besten Dank und Grüße
145033
145033 26.08.2020 aktualisiert um 21:55:04 Uhr
Goto Top
Naja hätte man auch einfach bei NUGET nachschlagen können das die erste DLL nicht für die Core-Version geeignet ist, dann wäre es auch keine Überraschung gewesen daß sie dort nicht ladbar ist.
LeeX01
LeeX01 26.08.2020 um 23:07:41 Uhr
Goto Top
genau anders herum, die Core hat keine Probleme, die Windows PS mag nicht. Hab es grad zur Sicherheit nochmal getestet mot der Version 1.8.5, ging nicht und dauert auch sehr lange. Mit der aktuellen Version (1.8.6.7) als RequiredVersion hat es dann ohne Probleme und schnell geklappt. Jetzt schau ich mal wie Mailkot damit harmoniert.
145033
145033 27.08.2020 aktualisiert um 07:47:46 Uhr
Goto Top
Zitat von @LeeX01:

genau anders herum, die Core hat keine Probleme, die Windows PS mag nicht. Hab es grad zur Sicherheit nochmal getestet mot der Version 1.8.5, ging nicht und dauert auch sehr lange. Mit der aktuellen Version (1.8.6.7) als RequiredVersion hat es dann ohne Probleme und schnell geklappt.
Nein, das kommt auf die aktuell installierte .NET Framework Version an. Wenn du die .NET4 Mailkit DLLs bspw. verwendest geht das in der PS aktuell nur mit der 1.8.5 (wohl noch ein Bug), mit den aktuelleren DLLs für .NET 4.8 z.B. geht es auch mit dem neueren BouncyCastle.
Die Core-Version nutzt auch nur andere SSL Bibliotheken deswegen braucht die die BouncyCastle Bibliothek nicht.

Jetzt schau ich mal wie Mailkot damit harmoniert.
Nutze ich pers. schon Jahrelang ohne Probleme.