Включить последнюю строку текстового файла в электронное письмо от Powershell - PullRequest
0 голосов
/ 19 декабря 2018

Я настроил задачу Windows для отправки мне электронного письма в определенное время дня с помощью этой команды

PowerShell.exe -windowstyle hidden -NoProfile -ExecutionPolicy Обход C: \ email.ps1

А в файле email.ps1 есть

$Username = "senderusername_without @gmail.com";
$Password = "gmailpassword";
$path = "C:\Dial Engine Pro\out.txt";

function Send-ToEmail([string]$email, [string]$attachmentpath){

    $message = new-object Net.Mail.MailMessage;
    $message.From = "senderemail@gmail.com";
    $message.To.Add($email);
    $message.Subject = "Dial Engine Pro outgoing call log $(get-date)";
    $message.Body = "Hi, this is your automated Dial Engine Pro outgoing call logs delivery. `n `n";
    $attachment = New-Object Net.Mail.Attachment($attachmentpath);
    $message.Attachments.Add($attachment);

    $smtp = new-object Net.Mail.SmtpClient("smtp.gmail.com", "587");
    $smtp.EnableSSL = $true;
    $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
    $smtp.send($message);
    $attachment.Dispose();
 }
Send-ToEmail  -email "myemail@gamil.com" -attachmentpath $path;

Текстовый файл выглядит так

«Без имени», «* 210755123456# "," 2018-12-19 14:00:33 "," "," Линия отключена. -> Соединение прервано другой стороной. "," "," 28 "" Без имени "," *210755654321 # "," 2018-12-19 18:00:33 "," "," Линия отключена. -> Соединение прервано другой стороной. "," "," 27 "" Без имени ","# 21 # "," 2018-12-19 21:00:14 "," "," Линия отключена. -> Соединение разорвано другой стороной. "," "," 9 "

Как я могу изменить тело письма так, чтобы оно также включало последнюю строку текстового файла вместо того, чтобы прикреплять его?Было бы неплохо, если бы я мог использовать значения текстового файла, такие как Последняя строка "значение того, что в кавычках" 2 и "" и "значение того, что в кавычках" 5, если вы понимаете, что я имею в виду, поэтому тело письмакак "Привет, это ваша автоматическая доставка журналов исходящих вызовов Dial Engine Pro. Телефон переадресован на * 21xxxxxxxxxx # в 18:00 с результатом" Линия отключена.-> Соединение прервано другой стороной. "

$ message.Body =" Привет, это ваша автоматическая доставка журналов исходящих вызовов Dial Engine Pro.n n ";

Я пробовал различные итерации

$ message.Body = Get-Content -Path C: \ Users \ AACSO PC2 \ AppData \ Roaming\ Dial Engine Pro \ out.txt | out-string;

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

Вот некоторая предыстория того, почему я делаю это для тех, кто заинтересован. Я добровольно звоню по телефону доверия, который является частью всемирной стипендии, и у нас небольшой офис с телефонной линией.мне приходит телефонный звонок. Эта часть процесса управляется в Сиднее в головном офисе. Когда офис находится в автоматическом режиме, мы устанавливаем переадресацию телефона, набирая * 21xxxxxxxxxx #, чтобы переадресовать телефон из офиса добровольцу.Сентябрь 2018 года наш телефонный провайдер удалил возможность удаленного доступа к телефонной линии из офиса https://crowdsupport.telstra.com.au/t5/News-Feed/Telstra-Home-Phone-Features-Exit/ba-p/747300, мы должны быть физически в офисе, чтобы переадресовать, поэтому один добровольец застрялпринимать телефонные звонки всю ночь вместо 4 часовых смен и передавать их следующему человеку.

Я устанавливаю модем коммутируемого доступа и некоторое программное обеспечение из Интернета Dial Engine Pro и несколько оконзапланированные задачи, чтобы забрать телефонную линию, набрать номер в определенное время и переадресовать на добровольца, и это делает переадресацию работать отлично.Программа выводит файл журнала "out.txt".Я хотел получить электронное письмо с файлом журнала, чтобы узнать, работали ли переадресации в течение ночи.Я использовал запланированное задание и Powershell, чтобы заставить это работать с учетной записью Gmail, но чтобы это работало, мне пришлось изменить конфигурацию Gmail, прежде чем я смог отправлять электронные письма из Powershell.Мне пришлось включить «менее безопасные приложения» в панели управления безопасностью Google здесь Настройки безопасности Google и убедиться, что двухфакторная аутентификация была отключена.

Так что все отлично работает со скриптом Powershellвыше я получаю электронное письмо с приложенным файлом журнала, но я являюсь любителем-программистом и хотел бы, чтобы тело письма содержало последнюю строку файла журнала, а не целое вложение или чтобы тело письма читалось просто как

Привет,

Это ваша автоматическая доставка журналов исходящих вызовов Dial Engine Pro.Телефон переадресован на * 21xxxxxxxxxx # в 18:00 с результатом «Линия отключена. -> Соединение разорвано другой стороной».

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...