在PowerShell中使用MailKit发送附件不会附件

问题描述

我在PowerShell中有一个简单的脚本,可以简单地SMTP PDF附件。没有主题,也没有身体。结果显示附件,但始终会收到没有附件的电子邮件。我想念什么吗?

$SMTP = [MailKit.Net.Smtp.SmtpClient]::new()
$Message = [MimeKit.MimeMessage]::new()
$Builder = [MimeKit.BodyBuilder]::new()

$Message.From.Add("[email protected]")
$Message.To.Add("[email protected]")
$Builder.Attachments.Add("C:\Users\myname\Path\MyPDF.pdf")

$SMTP.Connect('smtp.xxxx.com',465,'SecureSocketoptions.SslOnConnect')
$SMTP.Authenticate($MAILCREDENTIALS)

$SMTP.Send($Message)
$SMTP.disconnect($true)
$SMTP.dispose()

发送后的输出

ContentDuration         : 
ContentMd5              :
ContentTransferEncoding : Base64
FileName                : MyPDF.pdf
Content                 : MimeKit.MimeContent
ContentObject           : MimeKit.MimeContent
Headers                 : {Content-Type: application/pdf; name="MyPDF.pdf",Content-disposition: attachment; filename="MyPDF.pdf",Content-transfer-encoding: base64}  
Contentdisposition      : Content-disposition: attachment; filename="MyPDF.pdf"
ContentType             : Content-Type: application/pdf; name="MyPDF.pdf"
ContentBase             :
ContentLocation         :
ContentId               :
IsAttachment            : True

解决方法

我建议您在Github上查看此项目:https://github.com/EvotecIT/Mailozaurr
它建立在MimeKit和MailKit之上。

关于代码,请尝试将其添加到“ $ Builder.Attachments.Add ...”之后。

$Message.Body = $Builder.ToMessageBody()