Powershell:在脚本中使用PSFTP后发送邮件消息
我写了一个小脚本,使用PSFTP连接到FTP服务器,下载一些文件,最后发送一封包含下载文件摘要的电子邮件 我发现send mailmessage部分有问题,该部分因以下错误而失败:Powershell:在脚本中使用PSFTP后发送邮件消息,powershell,psftp,Powershell,Psftp,我写了一个小脚本,使用PSFTP连接到FTP服务器,下载一些文件,最后发送一封包含下载文件摘要的电子邮件 我发现send mailmessage部分有问题,该部分因以下错误而失败: 发送邮件消息:根据验证过程,远程证书无效。 当单独运行send mailmessage时,它会完美地工作,只有在与PSFTP结合使用时,它才会失败。我猜,这是由于与ftpserver进行了会话,以某种方式进行了干扰,但该会话应该在我们开始发送邮件时结束。我搞不懂,有人能帮忙吗 我的剧本: #--------
发送邮件消息:根据验证过程,远程证书无效。
当单独运行send mailmessage时,它会完美地工作,只有在与PSFTP结合使用时,它才会失败。我猜,这是由于与ftpserver进行了会话,以某种方式进行了干扰,但该会话应该在我们开始发送邮件时结束。我搞不懂,有人能帮忙吗
我的剧本:
#--------- FTP server variables here ------
$User = "XXX"
$Pass = "XXX"
$EncryptedPass = ConvertTo-SecureString -String $Pass -asPlainText -Force
$Credentials = New-Object System.Management.Automation.PSCredential($User,$EncryptedPass)
$Server = "XXX"
#-------- Mail credentials here -----------
$User_ = "XXX"
$Pass_ = "XXX"
$EncryptedPass_ = ConvertTo-SecureString -String $Pass_ -asPlainText -Force
$Mailcredentials = New-Object System.Management.Automation.PSCredential($User_,$EncryptedPass_)
#$mailcredentials =
$Subject ="'bowkerdownload'"
$To = "XXX"
$From = "XXX"
$body = (get-content -path g:\resultout.txt) -join "`n"
$SMTP = "smtp.office365.com"
#---------File variables here --------------
$month = (Get-Date).AddMonths(-8).ToString('MMM')
$year = (Get-date).addyears(-1).ToString('yyyy')
$filesequential="_*_"
$filesize = "lc"
$filetype = ".txt"
$samlevar=($month + ''+$year + ''+$filesequential + ''+$filesize + ''+$filetype)
$filename = $samlevar.tostring()
#------ The script---------
Set-FTPConnection -Credentials $Credentials -Server $server -Session defaultftpsession -UsePassive
$Session = Get-FTPConnection -Session defaultftpsession
Get-FTPChildItem -Path /Download -filter "$filename" |
Get-FTPItem -session $Session -LocalPath g:\ -Overwrite |
Convertfrom-string -PropertyNames Kode, Status, Action, fil |
Select-Object -Property Status, action, Fil |
Out-file g:\resultout.txt;
Send-MailMessage -To $To -Subject $Subject -Body $Body -SmtpServer $SMTP -From $From -Credential $Mailcredentials -port 587 -UseSsl``
如果省略
-usesl
,会发生什么情况?也许,可以帮忙吗?值得一试,但不起作用,smtp需要ssl。谢谢你的链接——虽然没有完全涵盖这个问题,但解释说明了问题的原因。