【问题标题】:Import all CSV data and exported in a HTML email for report via Powershell导入所有 CSV 数据并在 HTML 电子邮件中导出以通过 Powershell 进行报告
【发布时间】:2017-03-15 21:07:01
【问题描述】:

我有一个格式为日期、名称和 timeToExpire 的 CSV 文件。我想通过电子邮件发送该 CSV 数据。我想创建一个 HTML 文件。

当我运行代码时,我收到了电子邮件,但只有一个数据,而不是全部数据。

我知道在“here”和“end”之间我需要在 body 参数中放置一个循环。或者,如果您有其他解决方案或选项,欢迎。

$From = "System Administrator <sysadm@>"
$To = "pcisn@email.com"
#$Cc = "rn@email.com"
#$Attachment = "logs\pcemail.csv"
$Subject = "Passwd Reminder Report"

$users = import-csv -Path $csvfile | select *
foreach($user in $users)
{
   $date        = $user.'Date'
   $name        = $user.'name'
   $email       = $user.'EmailAddress'
   $expire      = $user.'DaystoExpire'
   $expireon    = $user.'ExpiresOn'
   $notify      = $user.'Notified'



    # Email Body Set Here, Note You can use HTML, including Images.
    $body ="

<table style= ""font-family: arial, sans-serif;border-collapse: collapse;width: 100%;"" >
  <tr style=""background-color: #f6f8f1;"" >
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">Date</th>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">Name</th>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">Email</th>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">Days to Expire</th>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">Expire On</th>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">Was Notify?</th>
  </tr>

#=================== Here's the part that I need help ===========================
<tr style=""background-color: #dddddd;"">
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">$date</td>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">$name</td>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">$email</td>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">$expire</td>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">$expireon</td>
    <th style=""border: 1px solid #dddddd;text-align: left;padding: 8px;"">$notify</td>
  </tr>
#================== end ================================
</table>

        <table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""0"" background=""#000000"">
            <tr style=""background-color: #000000;""  >
                <td align=""center""><font color=""#f6f8f1"">If you have any questions or issues, please contact us</font><br/>
                    <a href=""mailto:itt@ama.com""><font color=""#f6f8f1"">IT Support</font></a>
                </td>
            </tr>
            <tr style=""background-color: #000000;"" >
                <td align=""center"" style=""padding: 20px 0 0 0;"">
                    <table border=""0"" cellspacing=""0"" cellpadding=""0"">
                        <tr>
                            <td width=""37"" style=""text-align: center; padding: 0 10px 0 10px;"">
                                <a href=""http:///"">
                                    <img src=""https://s6.postimg.org/5rut/xs_blue_200.png"" width=""50"" height=""37"" alt=""AXS"" border=""0"" />
                                </a>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>

    "

    # Send Email Message
    #Send-Mailmessage -smtpServer $smtpServer -credential $creds -from $from -to $email -subject $subject -body $body -bodyasHTML -usessl -port 587 -priority High

    Write-Host "Notificacion enviada a" $name

    } 
# End Send Message

【问题讨论】:

  • 你能用“只有一个数据”来澄清你的人吗?分享输出的屏幕截图可能有助于我理解您的问题。
  • 我希望您的脚本发送多封电子邮件(每封包含一行数据)- 它只发送一封?

标签: html powershell


【解决方案1】:

当前代码在 foreach 循环的每次迭代中都会覆盖 Body 字段(并发送一封电子邮件)...这发生在输入文件中的每个条目上)。我也不明白 HTML 的“手动”构造:Powershell 有一个用于导出到 HTML、ConvertTo-HTML 的本机 CMDlet(您可以在这个上使用 -fragement 参数仅输出 - 添加自定义格式和样式可以使用 CSS 完成,而不是直接应用它们)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多