smtp邮件功能添加附件和抄送参数

Add Attachment and Cc Parameter to smtp Email function

我的 powershell 脚本当前处理从命令行向用户列表发送电子邮件。我想在电子邮件中添加附件以及抄送列表,这样所有电子邮件都不会通过 "To" 电子邮件参数发送。这是我当前的功能。

function SendEmail
{  
$smtpServer = "smtp.server"
$smtpFrom = "PROD <email@gmail.com>" 
$smtpTo = "me@gmail.com"  
$messageSubject = "Weekly List "+$day
$messagebody = "Hi User, Please find attached document. Thank you."

$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($smtpFrom,$smtpTo,$messageSubject,$messagebody)
}

我的尝试是添加一个名为 $attachment = "\PathtoFile" 的变量 并将 $attachment 添加到 Send 函数中,但这没有用...

Send-MailMessageAttachmentsCc 参数一起使用:

Send-MailMessage -Attachments "C:\path\to\attachment.ext" -Cc "myboss@gmail.com"

您还可以指定编码(您提到了特殊字符):

Send-MailMessage -Encoding UTF8

一般来说,我会推荐 splatting 参数,所以它最终看起来像这样:

$MyAttachments = ".\a\relative\path.ext","C:\another\file.ext"

$MailParams  = @{
    SmtpServer = "smtp.server"
    From = "PROD <email@gmail.com>" 
    To = "me@gmail.com"  
    Subject = "Weekly List "+$day
    Body = "Hi User, Please find attached document. Thank you."
    Attachments = $MyAttachments
    Encoding = [System.Text.Encoding]::UTF8
}

Send-MailMessage @MailParams