我的sharepoint事件接收器中有以下代码,用于将.oft文件复制到文档库中并将其粘贴到新目标(另一个文档库)中: -
SPDocumentLibrary template = (SPDocumentLibrary)properties.Web.GetList(properties.Web.ServerRelativeUrl + "/Templates/");
SPListItem templetefile = null;
foreach (SPListItem i in template.Items)
{
if (i.Name.ToLower().Contains("project"))
{
templetefile = i;
}
}
byte[] fileBytes = templetefile.File.OpenBinary();
string destUrl = properties.Web.ServerRelativeUrl + "/" + projectid.RootFolder.Url +".oft";
SPFile destFile = projectid.RootFolder.Files.Add(destUrl, fileBytes, false);
现在我的代码运行良好。但我不确定我是否可以在复制后访问.OFT文件,并修改其主题(按主题我的意思是我的电子邮件主题)??
答案 0 :(得分:3)
你可以使用Interop。
using Microsoft.Office.Interop.Outlook;
Microsoft.Office.Interop.Outlook.Application application = new Microsoft.Office.Interop.Outlook.Application();
MailItem mail = application.CreateItemFromTemplate("oldfile.oft") as MailItem;
mail.BodyFormat = OlBodyFormat.olFormatHTML;
mail.Subject = "New Subject";
mail.HTMLBody = "<p>This is a new <strong>OFT</strong> file with a changed subject line.</p>";
mail.SaveAs("newfile.oft");
对于在Visual Studio中找不到Interop的其他用户,请添加参考。
References
&gt; Add Reference
&gt; COM
&gt; Microsoft Outlook 15.0 Object Library
<强>更新强>
由于我没有SharePoint(或曾经使用过它),我无法测试它。但也许像这样的东西可以工作?使用Url
的{{1}}获取正确的文件。您也可以尝试this post中所见的绝对网址。使用该字符串加载文件进行编辑。
SPListItem
答案 1 :(得分:0)
如果您想避免安装/使用Outlook,可以查看Aspose.Email。
Aspose.Email for .NET是一套完整的电子邮件处理API 用于.NET Framework,.NET Core&amp; Xamarin平台,让您 构建具有创建能力的跨平台应用程序, 在不使用Microsoft的情况下操纵,转换和传输电子邮件 观强>
它也支持OFT文件