发送邮件附件powershell

时间:2018-04-17 00:51:24

标签: powershell email smtp

我正在为我的介绍Cyber​​Sec类开发一个项目(奖励积分),我有一个cmd脚本来创建一个带有usb驱动器信息的文件我试图使用powershell将电子邮件发送给我自己但是不断收到此错误:

At D:\mail.ps1:6 char:16
+ $att= $USBDRIVE\file.zip
+                ~~~~~~~~~
Unexpected token '\file.zip' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : UnexpectedToken

这是我的powershell脚本。

$USBDRIVE= Get-WMIObject Win32_Volume | ? { $_.label -eq 'ARNOLDHMW' } | 
select -expand driveletter

Compress-Archive -Path $USBDRIVE\file -DestinationPath $USBDRIVE\file.zip

$email = "*"

$pass = "*"

$att= $USBDRIVE\file.zip

$smtpServer = "smtp.gmail.com"

$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.EnableSSl = $true
$msg.From = "$email"
$msg.To.Add("$email")
$msg.IsBodyHTML = $true
$msg.Subject = "Files Captured"
$msg.Body = "
</br>
Hi there
"
$msg.Attachments.Add($att)
$SMTP.Credentials = New-Object System.Net.NetworkCredential("$email", 
"$pass");
$smtp.Send($msg)

电子邮件和密码因显而易见的原因而被删除 我在这里不知所措。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我非常确定您遇到的问题是因为您传递给$att的值不是字符串值。尝试将变量指定为字符串

$att = "$USBDrive\File.zip"

或更好

$att = Join-Path -Path $USBDrive -ChildPath "file.zip"