Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перевод строки в тексте письма  [new]
Degun
Member

Откуда:
Сообщений: 205
Как сделать перевод строки в тексте письма?

DECLARE @LetterBody NVARCHAR(max)
DECLARE @MailItem_ID INT
DECLARE @CRLF NVARCHAR(2) = '
';

SET @LetterBody = 'Stroka1
Stroka2' + @CRLF + 'Stroka3'

EXEC msdb.dbo.sp_send_dbmail
	 @profile_name = 'Internal server'
	,@recipients = 'a.com'
	,@subject = 'Test'
	,@body_format = 'HTML'
	,@body = @LetterBody
	,@mailitem_id = @MailItem_ID OUTPUT

PRINT @MailItem_ID


Данный код высылает письмо, текст которого в Microsoft Outlook-е содержит одну строку без переносов:

Stroka1 Stroka2 Stroka3
13 май 13, 13:44    [14287417]     Ответить | Цитировать Сообщить модератору
 Re: Перевод строки в тексте письма  [new]
hoha_ftf
Member

Откуда: ЕКБ
Сообщений: 42
Degun,
могу предположить, что для формата HTML надо писать <br>
13 май 13, 14:00    [14287486]     Ответить | Цитировать Сообщить модератору
 Re: Перевод строки в тексте письма  [new]
Exproment
Member

Откуда:
Сообщений: 416
Degun, для начала было бы неплохо писать перенос строки через числовое представление:
DECLARE @LetterBody NVARCHAR(max)
SET @LetterBody = N'Stroka1' + nchar(10) + N'Stroka2' + nchar(10) + N'Stroka3'


могу предположить, что ему еще каретку надо вернуть.
13 май 13, 14:00    [14287487]     Ответить | Цитировать Сообщить модератору
 Re: Перевод строки в тексте письма  [new]
Santa89
Member

Откуда:
Сообщений: 1504
Exproment, используя Nchar(10) надо незабыть поставить формат письма = "TEXT"
13 май 13, 14:03    [14287506]     Ответить | Цитировать Сообщить модератору
 Re: Перевод строки в тексте письма  [new]
Degun
Member

Откуда:
Сообщений: 205
Santa89,

Спасибо. Так работает:
EXEC msdb.dbo.sp_send_dbmail
	 @profile_name = 'Internal server'
	,@recipients = 'a.com'
	,@subject = 'Test'
	,@body_format = 'TEXT'
	,@body = @LetterBody
	,@mailitem_id = @MailItem_ID OUTPUT
13 май 13, 14:05    [14287516]     Ответить | Цитировать Сообщить модератору
 Re: Перевод строки в тексте письма  [new]
Degun
Member

Откуда:
Сообщений: 205
hoha_ftf,

Спасибо. Для формата HTML действительно должно быть так:

SET @LetterBody = 'Stroka1' + '<br>' + 'Stroka2' + '<br>' + 'Stroka3'
13 май 13, 14:09    [14287535]     Ответить | Цитировать Сообщить модератору
 Re: Перевод строки в тексте письма  [new]
Exproment
Member

Откуда:
Сообщений: 416
Santa89, у стартера переменная @LetterBody типа NVARCHAR и нет никакого смысла к ней присваивать varchar литералы! :)
13 май 13, 15:13    [14287947]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить