Can';不要通过Powershell发送电子邮件
我一直在尝试使用这个脚本作为一个简单的布尔值来检查文件,并发送一封成功或失败的电子邮件。但我一辈子也弄不明白为什么它不起作用 有什么想法吗Can';不要通过Powershell发送电子邮件,powershell,windows-server-2008-r2,Powershell,Windows Server 2008 R2,我一直在尝试使用这个脚本作为一个简单的布尔值来检查文件,并发送一封成功或失败的电子邮件。但我一辈子也弄不明白为什么它不起作用 有什么想法吗 $SMTPServer = "smtp.gmail.com" $SMTPPort = "587" $Username = "xxxx@xxxxx.com" $Password = "xxxxxxx" $to = "xxx@xxxxx.net" if ( ([System.Io.fileinfo]'E:\GD Backup Folder\backup\Bac
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
$Username = "xxxx@xxxxx.com"
$Password = "xxxxxxx"
$to = "xxx@xxxxx.net"
if ( ([System.Io.fileinfo]'E:\GD Backup Folder\backup\Backup_*.zip').LastWriteTime.Date -ne [datetime]::Today ) {
$message = New-Object System.Net.Mail.MailMessage
$message.subject = "Backup Successful"
$message.body = "Backup was successful."
$message.to.add($to)
$message.from = $username
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.send($message)
write-host "Mail Sent"
}else{
$message = New-Object System.Net.Mail.MailMessage
$message.subject = "Backup Unsuccessful"
$message.body = "Backup was NOT Successful - File Not Found"
$message.to.add($to)
$message.from = $username
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
$smtp.send($message)
write-host "Mail Sent"
}
使用powershell发送带有附件的电子邮件-
$EmailTo = "udit043.ur@gmail.com" // abc@domain.com
$EmailFrom = "udit821@gmail.com" //xyz@gmail.com
$Subject = "zx" //subject
$Body = "Test Body" //body of message
$SMTPServer = "smtp.gmail.com"
$filenameAndPath = "G:\abc.jpg" //attachment
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
$SMTPMessage.Attachments.Add($attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("udit821@gmail.com", "xxxxxxxx"); // xxxxxx-password
$SMTPClient.Send($SMTPMessage)
你是怎么做到这一点的?[System.Io.fileinfo]'E:\GD Backup Folder\Backup\Backup.*.zip'它只是在查找与今天日期相同的文件,如果是或否,它将发送一封电子邮件。也许我不能在那里使用通配符?请尝试在命令行上运行该代码片段。[System.Io.fileinfo]'E:\GD Backup Folder\Backup\Backup.*.zip'Oh。。正当所以我不能在那个位置使用通配符。真奇怪,它以前从来没有给过我一个错误。它就像正常一样运行。我想我会用简单的方法来做,而不是试图匹配一个特定的文件。我认为只查看所有文件会更容易。我的文件是在一个单独的脚本中生成的,文件名如下:Lytec_Backup_02192015.zip我只是想验证最后一个,即今天的,是否存在,然后发送一封电子邮件,说明是或否。实际上,无论出于何种原因,我都无法让它正常工作。我早就试过你的方法了。我最终用Python重写了整件事。第一次尝试:耸耸肩: