Форматирование рассылки

у меня есть рассылка писем на мыло, редактируется(добавляется строк удаление и т.д.) она через бд MSSQL, подскажите пжл как сделать так что бы текст можно было форматировать Html тегами(жирным, курсив, подчерк. и так далее), что нужно добавить мб, что то подключить что бы я мог бы сделать определенный текст жирным ? На обычные html теги 0 реакции выводит их как текст. вот например на покази хочу сделать жирным, как это сделать? это текст рассылки письма


Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

В целом вам нужно сделать две вещи:

  • укажите, что электронная почта находится в формате HTML. Пожалуйста, см. T-SQL ниже SQL #1.
  • составить тело письма в формате HTML. SQL #2

SQL #1

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'MyTestProfile',
    @recipients = '[email protected]',
    @subject = 'Daily Backup Status Report',
    @body = @MAIL_BODY,
    @body_format='HTML'

SQL #2

-- DDL and sample data population, start
DECLARE @tbl TABLE (
   ID INT IDENTITY PRIMARY KEY
   , state CHAR(2)
   , city VARCHAR(30)
);
INSERT INTO @tbl (state, city)
VALUES
('FL', 'Miami')
, ('CA', 'Los Angeles')
, ('TX', 'Austin');
-- DDL and sample data population, end

DECLARE @xhtmlBody XML
   , @body NVARCHAR(MAX)
   , @tableCaption VARCHAR(30) = 'US states and cities';

SET @xhtmlBody = (SELECT (
SELECT * FROM @tbl FOR XML PATH('row'), TYPE, ROOT('root'))
.query('<html><head>
            <meta charset="utf-8"/>
            (: including embedded CSS styling :)
            <style>table <![CDATA[ {border-collapse: collapse;  width: 300px;} ]]>
            th <![CDATA[ {background-color: #4CAF50; color: white;} ]]>
            th, td <![CDATA[ { text-align: left; padding: 8px;} ]]>
            tr:nth-child(even) <![CDATA[ {background-color: #f2f2f2;} ]]>
        td:nth-child(3) <![CDATA[ {background-color: red;} ]]>
        #green <![CDATA[ {background-color: lightgreen;} ]]>
         </style>
         </head>
         <body>
<table border="1">
    <caption><h2>{sql:variable("@tableCaption")}</h2></caption>
    <thead>
       <tr>
          <th>No.</th>
          <th>State</th>
          <th>City</th>
       </tr>
    </thead>
    <tbody>
{
    for $row in /root/row
    return <tr>
            <td>{data($row/ID)}</td>
            <td>{data($row/state)}</td>
            <td id="{if ($row/city/text()="Los Angeles") then "green" else ()}">
            {data($row/city)}
        </td>
        </tr>
}
</tbody></table></body></html>'));

SELECT @xhtmlBody;

SET @body = CAST(@xhtmlBody AS NVARCHAR(MAX));

Полный пример здесь: Электронная почта HTML в T-SQL Пожалуйста, проверьте мой ответ для Victor.

→ Ссылка