2015-02-19 3 views
0

Я пытаюсь использовать этот скрипт как простое логическое значение, которое проверяет файл и отправляет успешное электронное письмо или сообщение об ошибке. Но я не могу для жизни понять, почему это не работает.Не удается отправить письмо через Powershell

Любые идеи?

$SMTPServer = "smtp.gmail.com" 
$SMTPPort = "587" 
$Username = "[email protected]" 
$Password = "xxxxxxx" 
$to = "[email protected]" 

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" 
} 
+0

Как вы даже удалось получить этот бит работать? [System.Io.fileinfo] 'E: \ GD Backup Folder \ backup \ Backup _ *. Zip' – notjustme

+0

Он просто ищет файл с той же датой, что и сегодня, и отправит электронное письмо, если да, или если нет , Может быть, я не могу использовать подстановочный знак? –

+0

Попробуйте запустить этот единственный фрагмент кода в командной строке. [System.Io.fileinfo] 'E: \ GD Backup Folder \ backup \ Backup _ *. Zip' – notjustme

ответ

0

Отправить по электронной почте с приложением с помощью PowerShell -

 $EmailTo = "[email protected]" // [email protected] 
    $EmailFrom = "[email protected]" //[email protected] 
    $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("[email protected]", "xxxxxxxx"); // xxxxxx-password 
    $SMTPClient.Send($SMTPMessage) 
+0

На самом деле я никогда не мог заставить это работать по любой причине. Я тоже пробовал свой путь, рано. Я закончил переписывать все это в Python. Сначала попыталась. :: shrugs :: –

Смежные вопросы