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-Key: 599351

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

Printed on: April 23, 2024 at 20:04 o'clock

Mitglied: 145033
145033 Aug 26, 2020 updated at 14:36:53 (UTC)
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
Mitglied: 145033
Solution 145033 Aug 26, 2020 updated at 15:40:06 (UTC)
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/
Member: LeeX01
LeeX01 Aug 26, 2020 at 17:10:56 (UTC)
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
Mitglied: 145033
145033 Aug 26, 2020 updated at 19:55:04 (UTC)
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.
Member: LeeX01
LeeX01 Aug 26, 2020 at 21:07:41 (UTC)
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.
Mitglied: 145033
145033 Aug 27, 2020 updated at 05:47:46 (UTC)
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.