C# WP8中的EmailComposetTask问题
我正在处理一个场景,在这个场景中,我需要从wp8应用程序的按钮单击事件将保存在独立存储文件中的日志发送到电子邮件。我打算这样做C# WP8中的EmailComposetTask问题,c#,windows,windows-phone-8,windows-phone,C#,Windows,Windows Phone 8,Windows Phone,我正在处理一个场景,在这个场景中,我需要从wp8应用程序的按钮单击事件将保存在独立存储文件中的日志发送到电子邮件。我打算这样做 private void BtnGetLogs_OnClick(object sender, RoutedEventArgs e) { try { var isoStore = IsolatedStorageFile.GetUserStoreForApplic
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 = "sample@gmail.com";
};
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.
日志文件实际上是一个相当大的文件。这个问题有一个优雅的解决方案吗 此处的错误是自我解释的,您正在尝试将电子邮件正文设置为太长的文本
您最好将日志上传到OneDrive之类的地方。我在将曲目作为kml或gpx文件发送电子邮件时遇到了相同的问题。我的解决方案是创建一个简单的在线服务,我首先通过http将文件发布到该服务。该服务将为我将文件存储在在线位置,然后将url作为响应发送回该文件。然后,我会在电子邮件中包含指向该文件的链接,而不是附加该文件