2010-05-07 3 views
1

Я хочу сделать отчет SSRS 2008 как HTML (фактически MHTML) и отправить его как тело в электронном письме.SSRS 2008 - Отправка отчета по электронной почте

Кто-нибудь это сделал? Я почти получил это (я думаю), но у меня, похоже, проблема с кодировкой. Электронная почта отображается как то, что выглядит как кодировка base64.

Нравится: MIME-Version: 1.0 Content-Type: multipart/related; border = "---- = _ NextPart_01C35DB7.4B204430" X-MSSQLRS-ProducerVersion: V10.0.2531.0 Это многочастное сообщение в формате MIME. ------ = _ NextPart_01C35DB7.4B204430 Content-ID: Content-Disposition: inline; filename = "FollowUpNotification" Content-Type: text/html; name = "FollowUpNotification"; кодировка = "UTF-8" Content-Transfer-Encoding: base6 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNp ...

Любые идеи о том, что я не хватает?

Вот фрагмент кода:

myMail.BodyEncoding = System.Text.Encoding.UTF8; 

myMail.IsBodyHtml = true; 

WebClient client = new WebClient(); 

System.Net.NetworkCredential repAuthenticationInfo = 
    new System.Net.NetworkCredential(@"username", @"password"); 
client.Credentials = repAuthenticationInfo; 

client.Encoding = System.Text.Encoding.UTF8; 

string messageBody = client.DownloadString(
    "http://<<reportserver>>&rs%3aFormat=MHTML&Parameter=" + Parameter); 

myMail.Body = messageBody; 
+0

Проверьте версию SQL Server - вы можете использовать механизм электронной почты в подписях, а не самостоятельно отправлять электронную почту. –

+0

Мне нужен отчет, чтобы быть телом письма. Насколько я знаю, это невозможно сделать с подписками. – Mozy

+0

Просто небольшое обновление ... Моя проблема - MHTML (M для MIME) Мне нужен способ конвертировать MHTML в HTML или заставить электронную почту обрабатывать MHTML. – Mozy

ответ

3

System.Net.Mail не поддерживает отправку MHTML электронной почты, где MHTML отображается в сообщении (см страницу, где кто-то attempting to send MHTML as email).

Причина, по которой вы видите код, заключается в том, что messageBody ожидает HTML, а код подает ему документ MHTML. Строка не является автоматически незакодированной.

Вот некоторые варианты:

  1. Изменение параметров формата от MHTML к HTML3.2 или HTML4.0. SQL Reporting Services затем предоставит вам RAW HTML.
  2. Отправьте MHTML как вложение, а не в линию.
  3. Используйте встроенную функцию поддержки подписки на SSRS в качестве OMG Ponies, предложенную в вышеуказанном комментарии.
  4. Установите встроенный MHTML, как описано в this question. Вероятно, вы захотите купить библиотеку, чтобы помочь в этом.
+0

Ответ вы указали мне в правильном направлении. Оказывается, мне нужно было использовать ReportExecution2005.asmx вместо простого клиента, который я использовал, чтобы заставить параметры HTML работать. – Mozy

1

Мне нравится ответ Нейта, и я смог получить работу, работающую для HTML 4.0, используя приведенный ниже совет по ссылке в пункте № 4 выше, поэтому здесь это короткое сокращение для всех, кто бродит здесь. Быстрое замечание, однако, я использовал SMTP для отправки электронной почты, и изображения были удалены, поскольку они не могли ссылаться на мой сервер SSRS.

У меня нет решения для отправки содержимого .mht в качестве тела сообщения электронной почты, но я выяснил, как экспортировать отчет SQL Server 2005 в простой старый формат HTML. Я тоже был изначально отброшен плохой документацией параметра «формат» метода Render. Оказывается, если вы перейдете в «HTML4.0», SSRS будет генерировать HTML для вас.

Кредит принадлежит Voot, указанному выше.

Смежные вопросы