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

Sending attachment with MailKit in PowerShell doesn't attach

我在 PowerShell 中有一个简单的脚本来简单地通过 SMTP 发送 PDF 附件。没有主题,也没有 body。结果显示附件,但收到的电子邮件总是没有附件。我错过了什么吗?

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

$Message.From.Add("myname@mydomain.com")
$Message.To.Add("yourname@yourdomain.com")
$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()