【问题标题】:PowerShell Sending Echo output to EmailPowerShell 将 Echo 输出发送到电子邮件
【发布时间】:2020-11-04 14:49:31
【问题描述】:

大家好,我正在尝试使用 Send-MailMessage 将日志文件中的 echo 命令的输出作为电子邮件正文发送。

现在我只能发送日志文件,但我希望发送电子邮件正文中的日志内容。

如何管理?

目前我正在使用这条线:

Send-MailMessage -from donotreply@company.com -to "nobody@company.com" -subject "test" -body "test" -Attachment "C:\log.log" -smtpServer smtp.Server.com

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您需要阅读日志文件的内容并将其用于 Body 参数

    # -Raw reads it as single multiline string, including newlines
    $body = Get-Content -Path 'C:\log.log' -Raw  
    Send-MailMessage -Body $body ...
    

    如果邮件是HTML(带有开关-BodyAsHtml),则需要将换行符转换为<br /> 之类的

    # without -Raw you get the content as string array
    $body = (Get-Content -Path 'C:\log.log') -join '<br />'
    Send-MailMessage -Body $body -BodyAsHtml ...
    

    【讨论】:

    • 这是一个技巧,所以现在我面临新问题:) 我想在任务计划程序中安排这个脚本,但它不起作用。它处于运行状态,我每次都结束它。 Aby 的建议可能吗?
    • @user3391373 这可能是由多种原因引起的,例如运行任务以访问日志文件的用户的权限问题。请为此发布一个新问题并解释问题和您看到的错误(如果有)
    猜你喜欢
    • 1970-01-01
    • 2018-11-01
    • 2015-12-24
    • 2013-12-18
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    相关资源
    最近更新 更多