2014-10-20 65 views
0

我正在處理一個場景,在該場景中,我需要通過wp8應用程序的按鈕單擊事件將保存在獨立存儲文件中的日誌發送到電子郵件。下面是我打算怎麼辦呢,WP8中的EmailComposeTask問題

 private void BtnGetLogs_OnClick(object sender, RoutedEventArgs e) 
     { 
      try 
      { 
       var isoStore = IsolatedStorageFile.GetUserStoreForApplication(); 

       //Check if the isolated file exists 
       if (isoStore.FileExists(LogFileName)) 
       { 
        Debug.WriteLine("The file exists!"); 

        // Open the filestream to read the file 
        var isoStream = new IsolatedStorageFileStream(LogFileName, FileMode.Open, isoStore); 

        var reader = new StreamReader(isoStream); 
        string text = reader.ReadToEnd(); 
        SendLogsToEmail(text.Substring(length)); 
     } 

這是我發送電子郵件的功能,

 private void SendLogsToEmail(string body) 
     { 

      var emailComposeTask = new EmailComposeTask(); 
      { 
       emailComposeTask.Subject = "Log file to mail"; 

       emailComposeTask.Body = body; 

       emailComposeTask.To = "[email protected]"; 
      }; 

      emailComposeTask.Show(); 
     } 

我想給關於這個問題的背景,以及。這純粹是一個Windows Phone 8.0項目,所以我不能發送任何附件。這就是我試圖讀取所有文件內容並通過郵件發送的原因。請注意,這是解決我的工作。這是一種邊緣情況,因爲OEM安全問題,我無法從IsoStoreSpy或任何其他工具提取日誌。所以在應用程序本身,我有一個按鈕單擊事件,它讀取隔離的存儲文件並向指定的用戶發送郵件。

這裏的問題,我 在emailComposeTask.Show();得到ArgumentOutOfRangeException和錯誤消息是,

Specified argument was out of the range of valid values. 
Parameter name: The size of input should not exceed 64K. 

日誌文件是一個相當大的文件實際上。有沒有一個優雅的解決這個問題?

回答

0

錯誤是在這裏自我解釋,您正試圖將電子郵件正文設置爲太長的文本。

您最好上傳OneDrive等地方的日誌。

0

在將曲目作爲kml或gpx文件發送電子郵件時,我遇到了與我的NZ Topo Map app相同的問題。我的解決方案是創建一個簡單的在線服務,我首先通過http發佈文件。該服務將文件存儲在我的在線位置,然後將該URL作爲回覆發送到文件。然後我會在電子郵件中包含一個指向文件的鏈接,而不是附加文件。