Uwp ShowComposeneWebMailAsync是否具有最大正文长度?

Uwp ShowComposeneWebMailAsync是否具有最大正文长度?,uwp,Uwp,我正在UWP应用程序中使用Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync发送电子邮件。这个参数是一封电子邮件,我为它提供了一个收件人、一个主题和一个正文 在正文长度超过1200个字符之前,此操作可以正常工作。此时,当电子邮件程序加载时,身体会被切断。这个问题在几个不同的电子邮件客户端中都是相同的,因此它似乎是API的限制,而不是电子邮件客户端的限制 我已经查看了ShowComposeneWebMailAsy

我正在UWP应用程序中使用Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync发送电子邮件。这个参数是一封电子邮件,我为它提供了一个收件人、一个主题和一个正文

在正文长度超过1200个字符之前,此操作可以正常工作。此时,当电子邮件程序加载时,身体会被切断。这个问题在几个不同的电子邮件客户端中都是相同的,因此它似乎是API的限制,而不是电子邮件客户端的限制

我已经查看了ShowComposeneWebMailAsync和EmailMessage的文档,但它们都没有提到任何大小限制(或者其他方面)

有人知道这是否是一种限制吗?如果是这样的话,有办法解决吗?我的信息不是很大,但其中一些需要超过1200个字符

谢谢,
Frank

EmailManager.ShowComposeNewEmailAsync
实际上通过
mailto:
协议调用邮件应用程序

因此,此字符限制应该是对应邮件应用程序或服务的最大url长度限制。比如

或者,当判断当前字符超过1200时,可以将其转换为附件进行发送

public async Task SendMailAsync(字符串接收者、字符串主题、字符串消息)
{
EmailMessage=新EmailMessage();
emailMessage.To.Add(新的EmailRecipient(receiver));
emailMessage.Subject=Subject;
int length=msg.length;
如果(长度>1200)
{
string messageBody=“请检查附件”;
emailMessage.Body=messageBody;
StorageFolder localFolder=ApplicationData.Current.localFolder;
StorageFile attachmentFile=wait localFolder.CreateFileAsync(“TempMail.txt”,CreationCollisionOption.ReplaceExisting);
等待FileIO.WriteTextAsync(附件文件,msg);
if(attachmentFile!=null)
{
var stream=Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(attachmentFile);
var attachment=新电子邮件附件(
attachmentFile.Name,
溪流);
emailMessage.Attachments.Add(附件);
}
}
其他的
{
emailMessage.Body=msg;
}
等待EmailManager.showcomponsenewemailasync(emailMessage);
}

更新

使用EmailAttachment类添加到电子邮件的附件将仅显示在Mail应用程序中。如果用户将任何其他邮件程序配置为其默认邮件程序,则“撰写”窗口将不显示附件。这是一个众所周知的问题


Richard Zhang为您的问题提出了一个很好的解决方案,但这仅在使用windows mail应用程序时有效。
既然您提到了使用Outlook,您可以看看

由于这是发送电子邮件的另一种方式,您可能需要查看此软件包是否支持较长的邮件,否则使用附件解决方案可能会在此处奏效


请注意,使用附件仅在使用Windows Mail应用程序时有效!我的客户正在使用Outlook。我已将上述代码用于Windows Mail应用程序,但无法用于Outlook。有没有其他可行的方法?谢谢@Leander,这是我的疏忽,我已经更新了答案。您好@Flarosa,目前没有关于在UWP中调用Outlook发送附件的相关文档(已知的问题是,附件无法在not
Mail
应用程序中发送)。当检测到文本量超出范围时,您可以提醒用户手动启动Outlook以发送电子邮件。