在Powershell电子邮件中包含文本文件的最后一行

时间:2018-12-19 20:35:47

标签: windows powershell email gmail scheduled-tasks

我已经设置了Windows计划任务,以使用该命令在一天的特定时间向我发送电子邮件

  

PowerShell.exe-隐藏的Windowstyle -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自动拨出电话日志传递。电话在18:00转移到* 21xxxxxxxxxx#,结果为”线路已断开。 ->连接由另一端终止。“

  

$ message.Body =“嗨,这是您的Dial Engine Pro自动拨出电话日志记录。n n”;

我尝试了

的各种迭代
  

$ message.Body =获取内容-路径C:\ Users \ AACSO PC2 \ AppData \ Roaming \ Dial Engine Pro \ out.txt |线外;

但是那没有用。而且我希望电子邮件正文仅包含文本文件的最后一行。

以下是一些我感兴趣的人为什么这样做的背景。 我自愿提供热线服务,这是全球研究金的一部分,而我们的小型办公室设有电话线。当有人拨打国家号码时,如果他们在我所在的地区,就会打来电话。该过程的一部分在悉尼总部进行管理。当办公室无人时,我们通过处理* 21xxxxxxxxxx#来设置电话转移,以将电话从办公室转移给志愿者。在2018年9月,我们的电话提供商取消了从办公室https://crowdsupport.telstra.com.au/t5/News-Feed/Telstra-Home-Phone-Features-Exit/ba-p/747300远程访问电话线路的功能,我们必须亲自在办公室进行转移,所以一名志愿者整夜都无法接听电话他们中的4个小时轮班将其传递给下一个人。

我从互联网Dial Engine Pro设置了拨号调制解调器和一些软件,并安排了一些Windows计划任务来接听电话线,在特定时间拨打号码并转移给志愿者,这使转移工作正常进行完美。程序输出日志文件“ out.txt”。我想要一封带有日志文件的电子邮件,这样我就可以查看转移是否在整个晚上工作。我使用了计划任务和Powershell来通过gmail帐户完成该工作,但是要正常工作,我必须先更改gmail配置,然后才能从Powershell发送电子邮件。我必须在Google security settings的google安全控制面板中启用“安全性较低的应用”,并确保已禁用2要素身份验证。

所以上面的Powershell脚本一切都很好,我收到了带有附件日志文件的电子邮件,但是我是一名业余编码员,希望电子邮件正文包含日志文件的最后一行而不是整个附件,或者使电子邮件正文可以像

一样阅读

嗨,

这是您的自动Dial Engine Pro拨出呼叫日志传递。电话在18:00转移到* 21xxxxxxxxxx#,结果为“线路已断开。->连接被另一端终止。”

谢谢。

0 个答案:

没有答案