UWP中DataRequest设置的邮件主题无法在Outlook中生效的问题
解决UWP分享到Outlook自定义主题不生效的问题
当你通过DataTransferManager分享普通文本到Outlook时,Outlook不会读取DataPackage.Properties.Title作为邮件主题,而是使用默认的"Text from $SystemsUserName"。这是因为Outlook将普通文本分享视为通用内容,而非明确的邮件请求。
要让自定义主题生效,需要直接构造EmailMessage对象并添加到DataPackage中,具体修改如下:
首先添加命名空间引用:
using Windows.ApplicationModel.Email;
然后修改DataRequested事件处理方法:
void DataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args) { DataRequest request = args.Request; // 创建EmailMessage实例 EmailMessage email = new EmailMessage(); email.Subject = "My Custom Subject"; email.Body = "This is body of email"; // 将EmailMessage添加到DataPackage request.Data.SetEmailMessage(email); // 同时保留文本格式,兼容其他分享目标 request.Data.SetText("This is body of email"); request.Data.Properties.Title = "My Custom Subject"; }
这样修改后,Outlook会识别到明确的邮件请求,正确使用你设置的自定义主题。如果同时保留SetText和Title设置,也能兼容其他不支持邮件格式的分享目标。
内容的提问来源于stack exchange,提问作者Shiva_Adasule
相关产品推荐
相关产品推荐

