powershell - 如何在PowerShell电子邮件中添加多个文件作为附件
问题描述
该代码用于发送带有一个文件附件的自动电子邮件。如何发送多个文件?
@ECHO OFF
SET GmailAccount=%~1
SET GmailPassword=%~2
SET Attachment=%~3
setlocal
set "date=%date%"
CALL :PowerShell
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%' 'examplemail@mail.com' 'PasswordofEmail' 'D:\Abc.xls'"
EXIT
:PowerShell
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
SET PSScript=%temp%\~tmpSendeMail.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO $Username = $args[0]>> "%PSScript%"
ECHO $EmailPassword = $args[1]>> "%PSScript%"
ECHO $Attachment = $args[2]>> "%PSScript%"
ECHO >> "%PSScript%"
ECHO $Username = $Username >> "%PSScript%"
ECHO $EmailTo = "Receiver@mail.com" >> "%PSScript%"
ECHO $EmailFrom = "Sendermail@mail.com" >> "%PSScript%"
ECHO $Subject = "Subject Name of the Email Text - %date%" >> "%PSScript%"
ECHO $Body = "Email body Text" >> "%PSScript%"
ECHO $SMTPServer = "smtp.gmail.com" >> "%PSScript%"
ECHO $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body) >> "%PSScript%"
ECHO $Attachment = New-Object System.Net.Mail.Attachment($Attachment) >> "%PSScript%"
ECHO $SMTPMessage.Attachments.Add($Attachment) >> "%PSScript%"
ECHO $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) >> "%PSScript%"
ECHO $SMTPClient.EnableSsl = $true >> "%PSScript%"
ECHO $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword) >> "%PSScript%"
ECHO $SMTPClient.Send($SMTPMessage) >> "%PSScript%"
GOTO :EOF
PAUSE
解决方案
.Attachments
是一个集合,所以只需创建另一个附件对象,然后.Add()
再次运行该方法以添加第二个附件对象,例如:
$Attachment2 = $args[3]
# ...
$Attachment2 = New-Object System.Net.Mail.Attachment($Attachment2)
# ...
$SMTPMessage.Attachments.Add($Attachment2)
顺便说一句,您可以Send-MailMessage
为此使用 cmdlet。
推荐阅读
- ios - 尝试在 indexpath.row 上“向左滑动删除”时出现 UITableView SIGBRT 错误
- lua - 需要名称中带有点的文件夹中的模块
- python - 是否通过参数分开方法?
- linux - 如何理解“正式内核内存排序模型”中的 limus 测试 #5?
- amazon-web-services - aws sts 承担角色返回 accesskeyid 掩码“***”
- java - 在 Java 中使用“==”
- sql - 在表 A 中插入新行时,另一行也插入到表 B 中
- python - Python manage.py runserver 不适用于项目(Django)
- c++ - 指针算术规则中的“可能假设”是什么意思?
- git - 推送到 Git 需要 4 个步骤,可以减少吗?