我了解到有多个博客教我们如何使用html和css格式发送电子邮件,但是Azure Runbooks的PowerShell Workflow中似乎没有任何作用。
我想在电子邮件中发送已调度的Azure Runbook的状态,该书处理具有表的所有详细信息的Azure分析表格模型。
到目前为止,我正在尝试发送带有基本边框的电子邮件。到目前为止,我已经使用了以下脚本:
<#
This PowerShell script was automatically converted to PowerShell Workflow so it can be run as a runbook.
Specific changes that have been made are marked with a comment starting with “Converter:”
#>
workflow TablePS {
inlineScript {
# Create a DataTable
$table = New-Object system.Data.DataTable "TestTable"
$col1 = New-Object system.Data.DataColumn Name,([string])
$col2 = New-Object system.Data.DataColumn Dept,([string])
$table.columns.add($col1)
$table.columns.add($col2)
# Add content to the DataTable
$row = $table.NewRow()
$row.Name = "John"
$row.Dept = "Physics"
$table.Rows.Add($row)
$row = $table.NewRow()
$row.Name = "Susan"
$row.Dept = "English"
$table.Rows.Add($row)
# Create an HTML version of the DataTable
$html = "<table><tr><td>Name</td><td>Dept</td></tr>"
foreach ($row in $table.Rows)
{
$html += "<tr><td>" + $row[0] + "</td><td>" + $row[1] + "</td></tr>"
}
$html += "</table>"
$MyCredential = "DevCreds"
$Cred = Get-AutomationPSCredential -Name $MyCredential
$CredUsername = $Cred.UserName
$CredPassword = $Cred.GetNetworkCredential().Password
# Send the email
$smtpserver = "smtp.office365.com"
$from = "Prakhar.Saxena@Eriks.com"
$to = "Prakhar.Saxena@Eriks.com"
$subject = "test"
$body = "Hi there,<br />Here is a table:<br /><br />" + $html
Send-MailMessage -smtpserver $smtpserver -UseSsl -Port 587 -from $from -to $to -subject $subject -body $body -Credential $Cred -bodyashtml
}
}
但这对我没有帮助。我得到没有边框的表类型格式。你们能帮我这个忙吗? PFB: Image Snippet Here
答案 0 :(得分:0)
在发送电子邮件时,请记住您的CSS样式应该是内联的,以支持大多数邮件客户端。
# Define your styles.
$borderWidth = "1px"
$borderStyle = "solid"
$borderColor = "rgba(255, 0, 0, 1)"
$borderStyles = @("border-width: $borderWidth;", "border-style: $borderStyle;", "border-color: $borderColor;")
$styleAttribute = " style=`"$borderStyles`""
然后将您的$styleAttribute
添加到您要应用的任何地方。
# Create an HTML version of the DataTable
$html = "<table $styleAttribute><tr><td $styleAttribute>Name</td><td $styleAttribute>Dept</td></tr>"
foreach ($row in $table.Rows) {
$html += "<tr><td $styleAttribute>" + $row[0] + "</td><td $styleAttribute>" + $row[1] + "</td></tr>"
}
$html += "</table>"
使用CSS,直到获得所需的内容。您需要为table
和td
元素添加样式。