我目前正在尝试查找有关如何在Outlook网络应用中打开存储在Sharepoint Online中的电子邮件的选项。这意味着我已从Outlook拖动电子邮件并拖入SharePoint在线文档库。但是,我想通过SP在线回复电子邮件,只需单击该项目(然后在Outlook Web应用程序中打开)。
如果没有提供开箱即用,有没有办法为它创建一个应用程序,例如通过使用Outlook Web API实现此功能?
答案 0 :(得分:1)
当您以* .msg文件格式保存电子邮件并将文件上传到SharePoint Online时,它无法在Outlook Web App(OWA)中打开,因为OWA不了解* .msg文件格式(丰富的文件格式)。您可以下载该文件并使用Outlook客户端打开。
如果您想创建一个应用程序来完成它。在c#中,您可以使用以下步骤使用SharePoint Client dll:
1.向SharePoint发送一个请求,传递由用户名和密码创建的Credential对象:
public class serviceBean {
@PersistenceContext(unitName = "myPC")
EntityManager em; //not null
public insert(entity en) {
em.merge(en)
}
public class demoLog extends EmptyInterceptor {
public void doSave(){
MyUtil.logIt(entityLog);
}
}
public class MyUtil {
@PersistenceContext(unitName = "myPC")
EntityManager em; // got null here
public static void logIt(EntityLog entity) {
em.merge(entity);
}
}
2.提供文件URL以从.msg文件中读取数据:
ClientContext context = new ClientContext(SiteUrl);
context.Credentials = new SharePointOnlineCredentials(UserName, Password);
3。您可以使用FileStream对象下载.msg文件(单击here下载整个演示)。之后,您可以use c# to read information from the file然后通过System.Net.Mail.MailMessage发送电子邮件:
public Stream GetFile()
{
using (ClientContext clientContext = GetContextObject())
{
Web web = clientContext.Web;
clientContext.Load(web, website => website.ServerRelativeUrl);
clientContext.ExecuteQuery();
Regex regex = new Regex(SiteUrl, RegexOptions.IgnoreCase);
string strSiteRelavtiveURL = regex.Replace(FileUrl, string.Empty);
string strServerRelativeURL = CombineUrl(web.ServerRelativeUrl, strSiteRelavtiveURL);
Microsoft.SharePoint.Client.File oFile = web.GetFileByServerRelativeUrl(strServerRelativeURL);
clientContext.Load(oFile);
ClientResult<Stream> stream = oFile.OpenBinaryStream();
clientContext.ExecuteQuery();
return this.ReadFully(stream.Value);
}
}