无法填充Outlook邮件中从SQL Server生成的HTML表

时间:2019-01-11 21:13:10

标签: html sql sql-server outlook

我正在尝试在SQL Server中运行查询以生成表格格式的数据并添加html标记,以便当我将此输出写入邮件时,它应该以表格格式生成数据。将其保存到.html文件并在浏览器中打开时,生成的HTML似乎可以正常工作。但是它只是在邮件中显示为带有html代码的纯文本。请帮忙!!

下面是我在SQL Server中创建的函数。我正在发送此输出,以使用Markit EDM工具在电子邮件中显示。

INSERT INTO Items (Id, ItemId) VALUES (?, ?)

预期结果(表格格式)

CREATE FUNCTION dbo.<Function_Name> ()
RETURNS VARCHAR(max)
AS   
BEGIN
    DECLARE @xml NVARCHAR(MAX)
    DECLARE @body NVARCHAR(MAX)

    SET @xml = CAST((SELECT <Column1> AS 'td','', <Column2> AS 'td', '', <Column3> AS 'td'
                     FROM <table Name>
                     FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))

    SET @body ='<html><body><H3>Contact Info</H3>
                <table border =1>
                <tr>
                   <th> Solution Name </th> 
                   <th> Start Time </th> 
                   <th> Run Time </th></tr>'    

    SET @body = @body + @xml +'</table></body></html>'

    RETURN @Body
END

邮件中的实际结果仅显示纯html文本而不是表格。

<html><body><H3>Contact Info</H3>
<table border=1>
<tr>
<th> Solution Name </th>
 <th> Start Time </th> 
 <th> Run Start </th>
</tr>
 <tr>
 <td>Test maxrun Solution</td>
 <td>2019-01-11T11:58:48.077</td>
 <td>00:00:00</td>
 </tr>
 <tr>
 <td>Test maxrun Solution1</td>
 <td>2019-01-09T10:12:21.643</td>
 <td>01:46:26</td>
 </tr>
 <tr>
 <td>Test maxrun Solution2</td>
 <td>2018-12-28T14:50:16.270</td>
 <td>21:08:32</td>
 </tr>
 </table>
 </body>
 </html>

0 个答案:

没有答案