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

Откуда: оттуда
Сообщений: 360
При отправлении почты хранимкой msdb.dbo.sp_send_dbmail, где @body и @subject написаны кириллицей приходят вопросы.
Как исправить это?
9 ноя 12, 12:42    [13445368]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Ёжик25
При отправлении почты хранимкой msdb.dbo.sp_send_dbmail, где @body и @subject написаны кириллицей приходят вопросы.
Как исправить это?
Где написаны-то?
9 ноя 12, 12:45    [13445391]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Ёжик25,

небось, тип-то юникодный?
А перед литеральными строками N кто писать будет?
9 ноя 12, 12:48    [13445425]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Гавриленко Сергей Алексеевич,

ну например
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQLOperator',
@recipients = DBA@mail.com',

@body = 'тело письма',
@body_format = 'html' ,
@subject = 'тема письма';

'тело письма' приходит '???? ??????'
'тема письма' приходит '???? ??????'
9 ноя 12, 12:49    [13445439]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
https://www.sql.ru/faq/faq_topic.aspx?fid=127
9 ноя 12, 12:50    [13445447]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
О, супер, всем спасибо, тема закрыта!
9 ноя 12, 12:55    [13445506]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Поправочка
Проблема осталась таже
У меня правда не тупо текст, а переменные. Во все переменные сделал как по ссылке выше. По прежнему приходят вопросы
9 ноя 12, 13:02    [13445577]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Ёжик25
Поправочка
Проблема осталась таже
У меня правда не тупо текст, а переменные. Во все переменные сделал как по ссылке выше. По прежнему приходят вопросы
Переменные какого типа?
Может, проще написать тут весь запрос?
И может быть, дело в настройке почтового клиента?
9 ноя 12, 13:05    [13445619]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Ёжик25
Member

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

Это шаг джоба, последний, которые проверяет все вышеидущие шаги, выполнились они или нет.

declare @Mail_Body varchar(1000)
declare @cnt int
declare @sub varchar(100)
declare @strtime varchar(10)
declare @strdate varchar(100)
declare @curtime varchar(10)
declare @curdate varchar(10)
declare @res varchar(100)
declare @jb varchar(80)

SELECT @jb=name FROM msdb.dbo.sysjobs WHERE Job_ID = CONVERT(uniqueidentifier, $(ESCAPE_NONE(JOBID))) ;
select @cnt = count(*) from msdb.dbo.sysjobsteps where (last_run_outcome = 0) and (on_success_action <> 1) and (job_id = CONVERT(uniqueidentifier, $(ESCAPE_NONE(JOBID))))
set @sub = N'Выполнено. Бэкапирование баз. Сервер: ' + @@ServerName;
set @strtime = $(ESCAPE_SQUOTE(STRTTM))
if (Len(@strtime) <> 6) set @strtime = '0' + @strtime
set @strdate = $(ESCAPE_SQUOTE(STRTDT))
set @curtime = $(ESCAPE_SQUOTE(TIME))
if (Len(@curtime) <> 6) set @curtime = '0' + @curtime
set @curdate = $(ESCAPE_SQUOTE(DATE))

if (@cnt<> 0)
begin
set @sub = N'ОШИБКА.Бэкапирование баз.Сервер: ' + @@ServerName;
set @Mail_Body = N'<font face="Verdana","Arial"><H5>Анализ шагов JOBа на наличие ошибок во время бекапирования.</H5><br>'+'<body>'+
N'<table border="1" cellpadding="1" CellSpacing="1" width="250" bgcolor="#COC0C0" align="Center">' + N'<tr><th>Список шагов в которых возникли ошибки</th></tr>' +
CAST ( ( SELECT td = step_name
from msdb.dbo.sysjobsteps
where (last_run_outcome = 0) and (on_success_action <> 1) and (job_id = CONVERT(uniqueidentifier, $(ESCAPE_NONE(JOBID))))
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table></body></font>' ;
end
else
set @Mail_Body =N'Задание <b>[' + @jb + ']</b> выполнено.Бэкапирование баз.'

set @Mail_Body = @Mail_Body +

N'<br><br><font face="Arial" size=2>Время запуска задания: '+substring(@strdate,7,2) + '.'+substring(@strdate,5,2) + '.'+substring(@strdate,1,4) + ' ' +substring(@strtime,1,2) +':'+substring(@strtime,3,2)+
N'<br>Время окончания задания: '+substring(@curdate,7,2) + '.'+substring(@curdate,5,2) + '.'+substring(@curdate,1,4) + ' ' +substring(@curtime,1,2) +':'+substring(@curtime,3,2)+
N'</font>' ;
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQLOperator',
@recipients = 'DBA@pochta.com',
@body = @Mail_Body,
@body_format = 'HTML' ,
@subject = @sub;
9 ноя 12, 13:09    [13445658]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
nVarchar же.
9 ноя 12, 13:09    [13445669]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Гавриленко Сергей Алексеевич
nVarchar же.
+100

Ёжик25,

если Вы написали
set @sub = N'Выполнено. Бэкапирование баз. Сервер: ' + @@ServerName;
то тип @sub сразу поменялся на юникодный что ли?
9 ноя 12, 13:14    [13445733]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Гавриленко Сергей Алексеевич,


черт, какой же я невнимательный)))) пятницо.....
спасибо.

но при этом @Mail_Body с nVarchar все равно приходит с вопросами.

В строке set @Mail_Body =N'Задание <b>[' + @jb + ']</b> выполнено.Бэкапирование баз.' приходит "Задание [BackupFull_UserDB_AllDB] ?????????.????????????? ???."

Исправил set @Mail_Body =N'Задание <b>[' + @jb + ']</b>' + N' выполнено.Бэкапирование баз.'

Однако почему же не хочет подрят делать?
9 ноя 12, 13:21    [13445807]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Ёжик25,

Все разобрался, всем спасибо!!! Тема закрыта окончательно
9 ноя 12, 13:42    [13446056]     Ответить | Цитировать Сообщить модератору
 Re: проблема с кодировкой при отправлении почты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Ёжик25
Ёжик25,

Все разобрался, всем спасибо!!! Тема закрыта окончательно
Поставили-таки эту N окаянную везде, где надо?

Или, всё-таки, в настройке кодировки почтового клиента дело было?
9 ноя 12, 13:45    [13446098]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить