Powershell 发送电子邮件附加最后修改的文件详细信息?
Powershell to send EMAIL attaching last modified file details?
我正在尝试创建一个 PowerShell,它可以搜索文件夹并发送邮件以获取关于文件名和大小的最后创建的文件详细信息,电子邮件部分工作正常,但我无法在正文中附加文件大小和名称
Set-Location Y:\It-dept\OracleBkp
$latest = Get-Childitem -file $path | Sort LastWriteTime -Descending | select -First 1
$size = Get-Childitem -file $latest | Select-Object Name, @{Name="MegaBytes";Expression={$_.Length / 1MB}}
$Username = "<sender email>"
$EmailPassword = "<password>"
$EmailTo = <Receiver Mail>
$EmailFrom = <Sender EMail>
$Subject = Oracle Backup
$Body= $latest
$Body += $size
$SMTPServer = "smtp.outlook.com"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword)
$SMTPClient.Send($SMTPMessage)
以上是发送一封带有文件名的电子邮件,但正文中未显示大小。
任何支持将不胜感激..提前致谢
为什么不这样做...
$TargetPath = 'C:\Temp\OracleBkp.txt'
$latest = Get-Childitem -file $TargetPath |
Sort-Object -Property LastWriteTime -Descending |
Select-Object Name, @{
Name = 'MegaBytes'
Expression = {$PSItem.Length / 1MB}
} -First 1
# Results
<#
Name MegaBytes
---- ---------
OracleBkp.txt 0
#>
$Username = 'sender emai'
$EmailPassword = '<password'
$EmailTo = 'Receiver Mail'
$EmailFrom = 'Sender EMail'
$Subject = 'Oracle Backup'
$Body = "File details `n $latest"
$SMTPServer = 'smtp.outlook.com'
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword)
$SMTPClient.Send($SMTPMessage)
我正在尝试创建一个 PowerShell,它可以搜索文件夹并发送邮件以获取关于文件名和大小的最后创建的文件详细信息,电子邮件部分工作正常,但我无法在正文中附加文件大小和名称
Set-Location Y:\It-dept\OracleBkp
$latest = Get-Childitem -file $path | Sort LastWriteTime -Descending | select -First 1
$size = Get-Childitem -file $latest | Select-Object Name, @{Name="MegaBytes";Expression={$_.Length / 1MB}}
$Username = "<sender email>"
$EmailPassword = "<password>"
$EmailTo = <Receiver Mail>
$EmailFrom = <Sender EMail>
$Subject = Oracle Backup
$Body= $latest
$Body += $size
$SMTPServer = "smtp.outlook.com"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword)
$SMTPClient.Send($SMTPMessage)
以上是发送一封带有文件名的电子邮件,但正文中未显示大小。 任何支持将不胜感激..提前致谢
为什么不这样做...
$TargetPath = 'C:\Temp\OracleBkp.txt'
$latest = Get-Childitem -file $TargetPath |
Sort-Object -Property LastWriteTime -Descending |
Select-Object Name, @{
Name = 'MegaBytes'
Expression = {$PSItem.Length / 1MB}
} -First 1
# Results
<#
Name MegaBytes
---- ---------
OracleBkp.txt 0
#>
$Username = 'sender emai'
$EmailPassword = '<password'
$EmailTo = 'Receiver Mail'
$EmailFrom = 'Sender EMail'
$Subject = 'Oracle Backup'
$Body = "File details `n $latest"
$SMTPServer = 'smtp.outlook.com'
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $EmailPassword)
$SMTPClient.Send($SMTPMessage)