一千萬個為什麽

搜索

SSRS 2008 - 以電子郵件形式發送報告

我想要做的是將SSRS 2008報告呈現為HTML(實際上是MHTML)並將其作為正文發送到電子郵件中。

有沒有人這樣做過?我差不多了(我想),但我似乎有編碼問題。電子郵件顯示為看​​起來像某種base64編碼。

像這樣:MIME-Version:1.0 Content-Type:multipart/related; boundary =“---- = _ 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”; charset =“utf-8”Content-Transfer-Encoding:base64 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://<>&rs%3aFormat=MHTML&Parameter=" + Parameter);

myMail.Body = messageBody;

最佳答案

System.Net.Mail不支持在MHTML顯示為消息的情況下發送MHTML電子郵件(請參閱此頁面,其中某人嘗試將MHTML作為電子郵件發送)。

您看到代碼的原因是messageBody期待HTML,而代碼正在為它提供MHTML文檔。該字符串不會自動取消編碼。

以下是一些選項:

  1. 將格式參數從MHTML更改為HTML3.2或HTML4.0。然後,SQL Reporting Services將為您提供RAW HTML。
  2. 將MHTML作為附件而不是內聯發送。
  3. 使用SSRS內置的電子郵件訂閱功能,如上述評論中提到的OMG Ponies。
  4. 按照此問題中的討論,將MHTML內聯。您可能想購買一個圖書館來幫助解決這個問題。

轉載註明原文: SSRS 2008 - 以電子郵件形式發送報告