该代码用于发送带有一个文件附件的自动电子邮件。如何发送多个文件?
@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%' '[email protected]' '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 = "[email protected]" >> "%PSScript%"
ECHO $EmailFrom = "[email protected]" >> "%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)
顺便说一句,您可以使用cmdlet Send-MailMessage
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句