2013-10-17 83 views
0

我正在使用c#xaml开发Windows8 Metro应用程序,我必须将应用程序链接作为电子邮件发送给使用共享合同的用户。如何从Win8 Metro应用程序发送电子邮件

我已经试过是 私人无效RegisterForShare(){ DataTransferManager dataTransferManager = DataTransferManager.GetForCurrentView();

 dataTransferManager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.ShareLinkHandler); 
      } 

    private void ShareLinkHandler(DataTransferManager sender, DataRequestedEventArgs e)   { 

     DataRequest request = e.Request; 
     request.Data.Properties.Title = "Sharing My Link"; 
     request.Data.Properties.Description = "Add a link (URI) to share"; 

     var _Uri = new Uri("https://login.live.com/"); 
     Windows.System.Launcher.LaunchUriAsync(_Uri); 
    } 

而且也

 void App_QuerySubmitted(Windows.ApplicationModel.DataTransfer.DataTransferManager sender, Windows.ApplicationModel.DataTransfer.DataRequestedEventArgs args) 
    { 
     App.SettingsFlyout.Equals(args.Request, ApplicationExecutionState.Running); 

    } 

但它工作的方式在指定的链接只是打开,而不是一个功能,该链接的电子邮件可以被发送到soemone。

有什么建议或解决方法吗?

回答

0

没有用于发送电子邮件的内置API。微软建议使用共享魅力来发送电子邮件。虽然如果你想发送电子邮件通过你需要去商业图书馆叫Mail.dll

+0

我只修改代码一点'空隙dataTransferManager_DataRequested(DataTransferManager发件人,DataRequestedEventArgs参数) { AoO.SettingsFlyout.Equals(args.Request,ApplicationExecutionState.Running); }和'DataRequest请求= e.Request; request.Data.SetUri(new Uri(“http://”));'它工作正常..! – dmurali

1

虽然你可以使用共享魅力让用户发送文本,如果你想让用户肯定发送电子邮件(而不是Twitter/Facebook),那么你应该使用mailto协议。

await Launcher.LaunchUri(new Uri("mailto://[email protected]?subject=email")); 
+0

谢谢Nigel ..!这已经起作用了。但是有什么办法可以发送特定于内容的数据吗?说,itemDetailPage中的任何选定项目? – dmurali

+0

您可以通过追加内容添加到电子邮件&body = itemDetailGoesHere –

+0

我想你误会了!我的意思是,当用户点击一个项目并点击“分享”时,该特定项目应该邮寄给他!这可能吗? – dmurali

0

尝试此

var mailto = new Uri("mailto:[email protected]&subject=Your subject&body=Your text");  
await Windows.System.Launcher.LaunchUriAsync(mailto);  
相关问题