none
Database Mail и UTF-8 RRS feed

  • Вопрос

  • Приветствую!

    Насколько удалось выяснить, Database Mail посылает почту именно в этой кодировке. А можно ли использовать другую кодировку? 

    31 октября 2006 г. 11:47

Ответы

  • Письма на отправку хранятся в таблице sysmail_mailitems (база msdb). Там они хранятся в поле ntext. За отправку писем отвечает внешний databasemail90.exe, он использует databasemailengine.dll. В этой dll есть функции BodyEncodingUnicode, BodyEncodingUTF8 BodyEncodingUTF7 - но как их вызвать, не ясно. Итак, ответ: изменить кодировку писем с UTF-8 с помощью настроек SQL server нельзя. :) Но можно попробовать изменить вызов процедуры кодирования в dll. SoftIce и прочее, я так не умею :)
    2 ноября 2006 г. 7:25

Все ответы

  • Проверил: письмо все равно приходит в UTF-8.
    31 октября 2006 г. 14:29
  • Письма на отправку хранятся в таблице sysmail_mailitems (база msdb). Там они хранятся в поле ntext. За отправку писем отвечает внешний databasemail90.exe, он использует databasemailengine.dll. В этой dll есть функции BodyEncodingUnicode, BodyEncodingUTF8 BodyEncodingUTF7 - но как их вызвать, не ясно. Итак, ответ: изменить кодировку писем с UTF-8 с помощью настроек SQL server нельзя. :) Но можно попробовать изменить вызов процедуры кодирования в dll. SoftIce и прочее, я так не умею :)
    2 ноября 2006 г. 7:25
  •  Данила Полевщиков написано:
    Письма на отправку хранятся в таблице sysmail_mailitems (база msdb). Там они хранятся в поле ntext. :)

    nvarchar(max)

     Данила Полевщиков написано:
    ...Но можно попробовать изменить вызов процедуры кодирования в dll. SoftIce и прочее, я так не умею :)

    Слишком муторно, проще использовать альтернативный вариант отправки почты. Интересно, в чем причины этого нелепого ограничения?

    2 ноября 2006 г. 12:48
  •  Пан Зюзя написано:

     Данила Полевщиков написано:
    Письма на отправку хранятся в таблице sysmail_mailitems (база msdb). Там они хранятся в поле ntext. :)

    nvarchar(max)

    А не скажи :)) Я сначала написал nvarchar(max), а потом решил проверить. По лености использовать sp_columns. Она утверждает, что это ntext :) А object inspector показывает, что это nvarchar.

    sp_columns @table_name='sysmail_mailitems', @column_name='body'

     Пан Зюзя написано:

     Данила Полевщиков написано:
    ...Но можно попробовать изменить вызов процедуры кодирования в dll. SoftIce и прочее, я так не умею :)

    Слишком муторно, проще использовать альтернативный вариант отправки почты. Интересно, в чем причины этого нелепого ограничения?

    Должно же что-то войти в SP2. Да скорее всего просто нет необходимости у большинства потребителей. Меня вот utf-8 устраивает. И в XML она тоже главная. Намучались они, видно, с наличием win1251, koi8-r и cp866.

    2 ноября 2006 г. 13:17
  • А, меня, к сожалению, не устраивает. Надо на Palm посылать, а он с UTF-8 категорически не дружит :(
    2 ноября 2006 г. 13:55