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

Откуда:
Сообщений: 16
Добрый день.
Выполняю запрос:


declare @subject1 as nvarchar(255)
select @subject1 = N'В карточке поставщика S0000000 компания Рубикон успешно изменен код с КодПоставщика1 на Кодпоставщика'

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SQlProfile',
@recipients = 'SQL@agrp.ru',
@body = @subject1 ,
@subject = @subject1 ,
@importance = 'High'


приходит письмо, где ТЕЛО письма заполнено правильно:
В карточке поставщика S0000000 компания Рубикон успешно изменен код с КодПоставщика1 на Кодпоставщика
а в ТЕМЕ письма вот такая абракадабра:
?utf-8?B?0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C+0YHRgtCw0LLRidC40LrQsCBTMDAwMDAwMCDQutC+0LzQv9Cw0L3QuNGPINCg0YPQsdC40LrQvtC9INGD0YHQv9C10YjQvdC+INC40LfQvNC10L3QtdC9INC60L7QtCDRgSDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQsDEg0L3QsCDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQs
Мне кажется проблема в русских символах, но что с ними сделать, чтобы все было нормально - не пойму...
Буду рад, если поможете.
Спасибо!
7 апр 11, 16:53    [10487056]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Kirillich
Member

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

вывод про русские буквы крайне не обычен, при условии что в теме всё правльно пишется...
а что будет, если Вы ручками впишете название темы латиницей например N'Test mail'?
7 апр 11, 17:53    [10487597]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
beastms
?utf-8?B?0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C ...
Каким вы мамонтом почтовым клиентом пользуйтесь?! Сменить давно пора.
7 апр 11, 17:53    [10487599]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
beastms
Member

Откуда:
Сообщений: 16
Kirillich,
я так подумал из-за того, что если пробовать выводить несколько более короткое сообщение на русском (91 символ), вот такое, например:
'В карточке поставщика S0000000 компания Рубикон успешно изменен код с КодПоставщика1 на Код'
то все получается хорошо - и ТЕЛО и ТЕМА письма выводятся корректно.

при этом только количество символов явно не единственный фактор т.к. успешно выводятся строки с гораздо большим количеством символов, например 132: 'В карточке поставщика vendor_code changed from ABCDEFGHABCDEFGHABCDEFGH_ABCDEFGHABCDEFGHABCDEFGH To ABCDEFGHABCDEFGHABCDEFGHABCDEFGH'
еще в BOL я прочитал следующее:

"...Use of nchar, nvarchar, and ntext is the same as char, varchar, and text, respectively, except that:
Unicode supports a wider range of characters.
More space is needed to store Unicode characters..."

я предположил, что может разные символы занимают разный размер памяти, и при определенном сочетании символов размер сообщения становится больше "зарезервированного" NVARCHAR(255)
7 апр 11, 18:10    [10487693]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
beastms
Member

Откуда:
Сообщений: 16
Mnior,
немного не понял, о чем Вы?
Outlook как аутлук - 2010
7 апр 11, 18:46    [10487866]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
beastms
?utf-8?B?0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C+0YHRgtCw0LLRidC40LrQsCBTMDAwMDAwMCDQutC+0LzQv9Cw0L3QuNGPINCg0YPQsdC40LrQvtC9INGD0YHQv9C10YjQvdC+INC40LfQvNC10L3QtdC9INC60L7QtCDRgSDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQsDEg0L3QsCDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQs
Это невалидный Base64:
SELECT	Convert(XML,'0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C+0YHRgtCw0LLRidC40LrQsCBTMDAwMDAwMCDQutC+0LzQv9Cw0L3QuNGPINCg0YPQsdC40LrQvtC9INGD0YHQv9C10YjQvdC+INC40LfQvNC10L3QtdC9INC60L7QtCDRgSDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQsDEg0L3QsCDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQs')
	.value('xs:base64Binary(text()[1])','VarBinary(max)');
Или вы обрезали или клиент неправильно читает.

Разобрался:
EXEC dbo.spSaveToFile 'Z:\Path\Test.txt', N'В карточке поставщика S0000000 компания Рубикон успешно изменен код с КодПоставщика1 на Кодпоставщика'

SELECT	X.BulkColumn AS [*]
FROM	OpenRowSet(BULK 'Z:\Path\Test.txt',SINGLE_BLOB)X
FOR XML Path(''),Type
0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C+0YHRgtCw0LLRidC40LrQsCBTMDAwMDAwMCDQutC+0LzQv9Cw0L3QuNGPINCg0YPQsdC40LrQvtC9INGD0YHQv9C10YjQvdC+INC40LfQvNC10L3QtdC9INC60L7QtCDRgSDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQsDEg0L3QsCDQmtC+0LTQv9C+0YHRgtCw0LLRidC40LrQsA==
Куды делось A== ???
7 апр 11, 19:04    [10487926]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
beastms
Mnior,
немного не понял, о чем Вы?
Outlook как аутлук - 2010
У меня нормально ваш тестовый скрипт отработал и письмо нормально читается и на 2007м и 2010м.
7 апр 11, 19:09    [10487946]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Mnior
Куды делось A== ???
Может ваш почтовый сервер обрезает?
7 апр 11, 19:14    [10487958]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
beastms
Member

Откуда:
Сообщений: 16
Mnior,
скажу честно, для меня Ваши манипуляции несколько "неизвестные материи", тем не менее да действительно видимо я некорректно скопировал строку из темы письма:
вот более полный Copy - Paste:

=?utf-8?B?0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C+0YHRgtCw0LLRidC40LrQsCBTMDAwMDAwMCDQutC+0LzQv9Cw0L3QuNGPINCg0YPQsdC40LrQvtC9INGD0YHQv9C10YjQvdC+INC40LfQvNC10L3QtdC9INC60L7QtCDRgSDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQsDEg0L3QsCDQmtC+0LTQv9C+0YHRgtCw0LLRidC40LrQsA...
7 апр 11, 19:15    [10487968]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
beastms
Member

Откуда:
Сообщений: 16
Mnior,
а по каким причинам он может обрезать?
IT менеджеры клятвенно уверяют, что subject обрезается на стороне SQL Server
7 апр 11, 19:18    [10487976]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
beastms
вот более полный Copy - Paste:
=?utf-8?B?0JIg...0LrQsA...
Должно быть, если смотреть заголовки письма:
mail headers
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Subject: =?utf-8?B?0JIg...0LrQsA==?=


beastms
а по каким причинам он может обрезать?
Да по любым: сиквел, почтовые сервера, аутглюк, и много чё другого. Банально не накатаны апдейты на что угодно. Предоставьте
PRINT @@Version

beastms
IT менеджеры клятвенно уверяют, что subject обрезается на стороне SQL Server
Они видели сетевые трассы? Не верю.
7 апр 11, 20:11    [10488167]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
beastms
Member

Откуда:
Сообщений: 16
Mnior,
print @@version выдал:

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)
Mar 29 2009 10:11:52
Copyright (c) 1988-2008 Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)

но впрочем эта проблема остается и на других серверах с другой версией и операционки и самого сиквела, например:

Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
Nov 24 2008 13:01:59
Copyright (c) 1988-2005 Microsoft Corporation
Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
8 апр 11, 11:54    [10490471]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Kirillich
Member

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

так может проблема и не в сиквеле, а в почтовом сервере через который отправляете?
8 апр 11, 13:03    [10491030]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
beastms
Member

Откуда:
Сообщений: 16
Kirillich,
возможно, я и сам не хочу настаивать на том, что это сиквел "виноват".

Просто, к сожалению, никогда вглубь почтовой технологии не влезал... Если направите, в каком направлении копать и куда направить усилия IT-менеджеров, которые и отвечают за почту и все, что с ней связано, буду благодарен.

Спасибо.
8 апр 11, 13:08    [10491079]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
см настройки своего SMTP-сервера на предмет Allow 8-bit Characters
8 апр 11, 13:13    [10491127]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
beastms
Если направите, в каком направлении копать и куда направить усилия IT-менеджеров, которые и отвечают за почту и все, что с ней связано, буду благодарен.

Чё там думать, настраиваете SQL на внешний вменяемый почтовый сервер. Gmail например.
Если всё пучком будет, что скорее всего, то "встаньте в позу" "пули вылетели".
Иначе копайте сетевой траф.

beastms
Microsoft SQL Server 2008 (SP1)
Уже давно SP2 вышел.

beastms
но впрочем эта проблема остается и на других серверах
Вероятность что это ваш почтовый сервер - over 9000

Mnior
Должно быть, если смотреть заголовки письма:
mail headers
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Subject: =?utf-8?B?0JIg...0LrQsA==?=

Вы так и не предоставили заголовки письма.
8 апр 11, 14:02    [10491411]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
LAKERS824
Member

Откуда:
Сообщений: 29
у меня почти такая же проблема, только тема нормально идет, а тело письма абракадабра
8 апр 11, 15:14    [10491949]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
beastms
Member

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

Mnior
Должно быть, если смотреть заголовки письма:mail headers
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Subject: =?utf-8?B?0JIg...0LrQsA==?=


да, в заголовке все, как Вы указали:
...
MIME-Version: 1.0
From: SQL Server Agent Mail Service <SQLServerAgent@agrp.ru>
To: <SQL@agrp.ru>
Reply-To: SQLServerAgent@agrp.ru
Date: Fri, 8 Apr 2011 11:51:47 +0400
Subject: =?utf-8?B?0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C+0YHRgtCw0LLRidC40LrQsCBTMDAwMDAwMCDQutC+0LzQv9Cw0L3QuNGPINCg0YPQsdC40LrQvtC9INGD0YHQv9C10YjQvdC+INC40LfQvNC10L3QtdC9INC60L7QtCDRgSDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQsDEg0L3QsCDQmtC+0LTQv9C+0YHRgtCw0LLRidC40LrQsA==?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Message-ID: <fb66f426-f9a3-4f3f-9efd-7138eacbee6a@datacenter.agrp.ru>
Return-Path: SQLServerAgent@agrp.ru


Mnior
Чё там думать, настраиваете SQL на внешний вменяемый почтовый сервер. Gmail например.
Если всё пучком будет, что скорее всего, то "встаньте в позу" "пули вылетели".
Иначе копайте сетевой траф.


перенастроил DatabaseMail на Mail.ru (уж не знаю насколько вменяемым он является :)) - заголовок письма не изменился:

...
MIME-Version: 1.0
From: zverkams <zverkams@mail.ru>
To: <SQL@agrp.ru>
Reply-To: zverkams@mail.ru
Date: Fri, 8 Apr 2011 14:52:36 +0400
Subject: =?utf-8?B?0JIg0LrQsNGA0YLQvtGH0LrQtSDQv9C+0YHRgtCw0LLRidC40LrQsCBTMDAwMDAwMCDQutC+0LzQv9Cw0L3QuNGPINCg0YPQsdC40LrQvtC9INGD0YHQv9C10YjQvdC+INC40LfQvNC10L3QtdC9INC60L7QtCDRgSDQmtC+0LTQn9C+0YHRgtCw0LLRidC40LrQsDEg0L3QsCDQmtC+0LTQv9C+0YHRgtCw0LLRidC40LrQsA==?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Message-ID: <E1Q89K3-0000RX-00.zverkams-mail-ru@smtp19.mail.ru>
X-Spam: Not detected
X-Mras: Ok
Return-Path: zverkams@mail.ru
X-OriginalArrivalTime: 08 Apr 2011 10:53:59.0597 (UTC) FILETIME=[43E5D5D0:01CBF5DB]


Сервис пак постараюсь накатить в ближайшее время.
8 апр 11, 15:17    [10491980]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
beastms
да, в заголовке все, как Вы указали:
Ё, так у вас шо всётаки аутглюк глючит. Попробуйте другой, другой версии, накатать упдейты.
8 апр 11, 18:30    [10493295]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Mnior
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Subject: =?utf-8?B?0JIg...0LrQsA==?=
beastms
Subject: =?utf-8?B?0JIg0LrQsA==?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Не сходятся заголовки да и по порядку.

Возмите два письма, с нормальным отображением и это и сравните заголовки.
Если разница особой нет, то виноват клиент палюбэ.
8 апр 11, 18:38    [10493326]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Проблема с кодировкой темы письма высланного sp_send_dbmail  [new]
Turbo_nsk
Guest
Ребята, если кому-то еще будет интересно - тема письма(@Subject) ограничена 100 символами(методом тыка подобрано). Если больше, то идет абракадабра в теме
22 ноя 17, 00:30    [20973851]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить