Форматирование / отступ XML-кода при отправке электронной почты с использованием sp_send_dbmail [форматирование xml-кода в теле письма]
Я пытаюсь отправить dbmail с XML-кодом в качестве тела, см. Мой код ниже, показывающий то же самое,
declare @xml xml = '<?xml version="1.0"?>
<Order>
<Date>2003/07/04</Date>
<CustomerId>123</CustomerId>
<CustomerName>Acme Alpha</CustomerName>
<Item>
<ItemId> 987</ItemId>
<ItemName>Coupler</ItemName>
<Quantity>5</Quantity>
</Item>
<Item>
<ItemId>654</ItemId>
<ItemName>Connector</ItemName>
<Quantity unit="12">3</Quantity>
</Item>
<Item>
<ItemId>579</ItemId>
<ItemName>Clasp</ItemName>
<Quantity>1</Quantity>
</Item>
</Order>'
--SELECT @xml
declare @bodyprep varchar(max)
select @bodyprep = cast(@xml as varchar(max))
EXEC msdb. dbo.sp_send_dbmail
@profile_name='Profile-A' ,
@recipients ='.com',
@from_address = '.com' ,
@subject = 'test',
@body = @bodyprep
но полученное письмо не выровнено, как показано ниже,
<Order><Date>2003/07/04</Date><CustomerId>123</CustomerId><CustomerName>Acme Alpha</CustomerName><Item><ItemId> 987</ItemId><ItemName>Coupler</ItemName><Quantity>5</Quantity></Item><Item><ItemId>654</ItemId><ItemName>Connector</ItemName><Quantity unit="12">3</Quantity></Item><Item><ItemId>579</ItemId><ItemName>Clasp</ItemName><Quantity>1</Quantity></Item></Order>
Есть ли способ отформатировать или сделать отступ кода XML выше?
Я хотел бы отправить отформатированный код, как показано ниже,
<Order>
<Date>2003/07/04</Date>
<CustomerId>123</CustomerId>
<CustomerName>Acme Alpha</CustomerName>
<Item>
<ItemId> 987</ItemId>
<ItemName>Coupler</ItemName>
<Quantity>5</Quantity>
</Item>
<Item>
<ItemId>654</ItemId>
<ItemName>Connector</ItemName>
<Quantity unit="12">3</Quantity>
</Item>
<Item>
<ItemId>579</ItemId>
<ItemName>Clasp</ItemName>
<Quantity>1</Quantity>
</Item>
</Order>
Спасибо
1 ответ
msdb.dbo.sp_send_dbmail
имеет дополнительный параметр, @body_format = 'HTML'
, который позволит вам отображать XML, как вам нравится, как только вы украсите его правильной разметкой HTML. Это единственный способ контролировать внешний вид электронного письма до указанного вами уровня, то есть с помощью правильного отступа и цветовой кодировки.
Если вы можете обойтись без цветовой кодировки, @body_format = 'TEXT'
(по умолчанию) это хорошо, но в любом случае у вас есть работа, чтобы получить отступ, как вы указали.