Внедрение изображений из таблицы базы данных в сообщение электронной почты с помощью sp_send_dbmail (SQL Server 2008 R2)

В настоящее время у меня есть база данных SQL Server 2005, которая отправляет электронные письма в формате HTML различным пользователям, и я использую параметр @file_attachments для встраивания изображений в электронную почту. У меня есть файлы изображений на самом SQL Server, поэтому параметр относится к абсолютному пути к изображениям на сервере.

Теперь мы переходим на SQL Server 2008 R2, и это хорошо, но новая структура сервера заблокирована, поэтому я не могу просто поместить файлы изображений на сервер и указать на них параметр @file_attachments.

Я рассматриваю два возможных решения:

  • Сохраните изображения в столбце базы данных типа VARBINARY(MAX) или IMAGE и каким-то образом укажите на это параметр @file_attachments. Однако я не вижу никакого способа сделать это.

  • Используйте VARBINARY(MAX) с FILESTREAM и выясните физический путь к файлу на сервере базы данных. Не уверен, что это возможно, но подозреваю, что да.

Кто-нибудь пробовал это? Любые другие предложения?

Спасибо, Джим


person Jim    schedule 11.02.2014    source источник
comment
Поместите электронную почту на свой файловый/веб-сервер и просто используйте ‹img src›, как на веб-странице?   -  person Aaron Bertrand    schedule 12.02.2014
comment
В этом нет смысла: изображения должны быть встроены в электронное письмо, а не внешние ссылки. Посмотрите это для чего-то похожего: stackoverflow.com/questions/663048/.   -  person Jim    schedule 12.02.2014
comment
Вы знаете, что они не всегда будут отображаться, верно? Сделать его таким же надежным и предсказуемым, как и внешние ссылки.   -  person Aaron Bertrand    schedule 12.02.2014
comment
Я знаю, но это все еще то, что я ищу. Спасибо   -  person Jim    schedule 12.02.2014
comment
Для варианта №1: IMAGE является устаревшим типом, не используйте его больше. Всегда используйте VARBINARY(MAX) вместо этого   -  person marc_s    schedule 12.02.2014