У меня проблемы с созданием объекта Message с помощью mailkit, поэтому я могу добавить From, To, Subject и body с сообщением, которое может иметь вложения для отправки перед отключением. Я создал объект MailKit, объект токена отмены. Я могу загрузить dll MailKit и MimeKit, используя add-type -path, и я могу подключаться, проверять подлинность, отключать и удалять, но мне нужна помощь в создании и отправке объекта сообщения. У меня есть следующее:
$MkSmtp = New-Object MailKit.Net.smtp.SmtpClient
$CanToken = New-Object System.Threading.CancellationToken ($false)
$SSL = [MailKit.Security.SecureSocketOptions]::SslOnConnect
$MkSmtp.Connect($MailServer, $Port, $SSL, $CanToken)
$MkSmtp.Authenticate(([System.Text.Encoding]::UTF8), $Username, $Password, $CanToken)
#$Message = New-Object ????
$MkSmtp.Send($Message)
$MkSmtp.Disconnect($true)
$MKSmtp.Dispose()
Я думал, что ответ был:
$Message = [Mimekit.MimeMessage]::new()
$Message.From.Add($From)
$Message.To.Add($To)
$Message.Subject = "Test"
$TextPart = [MimeKit.TextPart]::new("plain")
$Body = "This is just a test"
$TextPart.Text = $Body
$Message.Body = $TextPart
Что пришло от https://www.powershellgallery.com/packages/PSGSuite/2.13.2/Content/Private%5CNew-MimeMessage.ps1. Это сработало на моей машине разработчика, но при его запуске в производство выдается следующая ошибка:
Ошибка вызова метода, поскольку [MimeKit.MimeMessage] не содержит метод с именем 'new'
Когда он пытается go передать следующую строку:
$Message = [Mimekit.MimeMessage]::new()
Размещение точки останова на этой строке после загрузки dll с помощью add-type и запуска "[MimeKit.MimeMessage] | Get-Member - Stati c "в командной строке powershell на сервере разработки и производства показывает следующее:
Development
Production
Одна и та же DLL загружена как в разработку, так и в производство. Я загрузил DLL, используя как Add-Type, так и System.Reflection.Assembly. Производство ведется на PowerShell 4.0, а мой блок разработки - на PowerShell 5.1. Не знаю, в этом ли проблема. У кого-нибудь есть идеи?