我有一个使用日期,名称和timeToExpire格式化的CSV文件。我想在电子邮件中发送CSV数据。我想创建一个HTML文件。
当我运行代码时,我收到了电子邮件,但只有一个数据,而不是全部。
我知道" here"和"结束"我需要在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
答案 0 :(得分:0)
当前代码会在foreach循环的每次迭代中覆盖Body字段(并发送电子邮件)...基本上,您现在正在为每个用户执行的操作:在Body中添加当前用户条目并将其邮寄(这对输入文件中的每个条目都会发生。我也不理解HTML的“手动”构造:Powershell有一个用于导出到HTML的本地CMDlet,ConvertTo-HTML(你可以在这个上使用-fragement参数来输出 - 添加自定义格式和样式可以用CSS完成而不是在线应用它们