我正在使用c#编写一个Outlook 2007加载项来存储SQL Server 2005数据库中的电子邮件.我希望能够将整个.msg文件存储在一个varbinary(MAX)字段中.有没有办法这样做,而不必使用Outlook MailItem的SaveAs()方法保存到临时文件,然后重新读取文件?我需要将大量电子邮件传输到数据库,并希望避免代价高昂的磁盘读写操作.
我需要为使用VSTO创建的Outlook 2003加载项创建安装程序.
我们目前正在为我们的安装程序使用Wix,因为它们与MSBuild很好用,我需要使用它来为outlook加载项创建安装程序.
我没有使用outlook加载项的经验,并且不确定涉及到什么以及如何创建安装程序.
任何人都可以分享任何可以帮助我的经验/提示/示例吗?
提前致谢,
乙
我正在使用ApplicationEvents_11_ItemSendEventHandler(请参阅http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.applicationevents_11_itemsendeventhandler.aspx)在从Outlook发送项目时进行一些处理.
但是,由于此事件触发"发送"而不是"已发送",我无法获取某些信息,例如发件人,发送时间等.
项目实际发送后是否会触发另一个事件?我读过这篇博文; http://easyvsto.wordpress.com/2010/07/27/how-to-save-mail-content-when-a-mail-is-sent-from-outlook/但我对依赖出现的项目保持警惕在sent items文件夹中,考虑到用户可以禁用此功能.
编辑:我应该补充一点,我实际上已经尝试了"观察已发送的项目文件夹"的方法,并注意到该ItemAdd事件似乎只发送我发送的第一封电子邮件,然后再重新启动Outlook.我的代码如下;
var sentMail = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
sentMail.Items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd);
Run Code Online (Sandbox Code Playgroud)
我的方法......
void Items_ItemAdd(object item)
{
MessageBox.Show(((Outlook.MailItem)item).Subject);
}
Run Code Online (Sandbox Code Playgroud) 我正在为outlook mac开发一个插件,我搜索了整个Google和社区,每个人都告诉我,它不可能为Outlook mac制作插件,因为它根本不支持我承认但我刚认识展望的WebEx插件,我想知道他们是如何设法的?如果有人有想法,我会非常感激

我正在为outlook 2007编写一个插件,我想阅读一个MailItem的属性.
特别是我想知道我的附件的所有内容类型.现在,我现在这样做的方式是这样的:
Outlook.MailItem item = OutlookItem as Outlook.MailItem;
Outlook.Attachments itt = item.Attachments;
foreach (Outlook.Attachment t in item.Attachments)
{
textBox1.Text += t.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x370E001F");
}
Run Code Online (Sandbox Code Playgroud)
但我宁愿只是打电话.
t.PropertyAccessor.GetProperty(PR_ATTACH_MIME_TAG);
Run Code Online (Sandbox Code Playgroud)
我不能让你以后的选择工作,但是在msdn文档中提到了这个属性.(http://msdn.microsoft.com/en-us/library/ms879575.aspx).有没有人知道如何在不使用字符串而是使用常量的情况下很好地检索属性?
我正在为Outlook 2010开发加载项.我必须为它们获取所有规则和描述.我可以访问规则,但我不明白如何获得图片上的描述.
我编写了一个简单的 VSTO 插件,当用户单击功能区栏按钮时,它会在电子邮件中插入超链接。这是一个代码示例:
private void button1_Click(object sender, RibbonControlEventArgs e)
{
var context = e.Control.Context as Inspector;
if (context != null)
{
if (context.IsWordMail())
{
var doc = context.WordEditor as Document;
if (doc != null)
{
var sel = doc.Windows[1].Selection;
doc.Hyperlinks.Add(sel.Range, "http://www.google.com", "", "", "Google", "");
}
}
}
else if (e.Control.Context is Explorer)
{
Explorer explorer = Globals.ThisAddIn.Application.ActiveExplorer();
if (explorer.Selection.Count == 1)
{
Microsoft.Office.Interop.Outlook.Selection itemSelection = explorer.Selection;
var item = itemSelection[1] as MailItem;
// get the instance of WordEditor in …Run Code Online (Sandbox Code Playgroud) 我已经设置了一个非常简单的functions.html,它启动了一个同样简单的对话框,只注册Office.initialize和控制台日志.如果打开时间太长,我在控制台中会出现一个大错误,除了刷新外,对话框变得不可用.
这是一个已知问题还是我需要采取不同的做法?
dialog.html
<!DOCTYPE html>
<html lang="en" style="height: 100%">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
<title>React App</title>
<script>
Office.initialize = x => {
console.log('initialized')
}
</script>
</head>
<body style="height: 100%">
yo stuff
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的js看起来像这样
export const showSmsModal = () => {
officeCtx().ui.displayDialogAsync(`${window.location.origin}/test.html`, {displayInIframe: true, height: 40, width: 40}, ({ value: dialog }) => {
console.log(dialog)
return dialog
})
}
Run Code Online (Sandbox Code Playgroud)
我得到的部分错误如下:
t(t)中未捕获的异常{var o = e.call(this,t)|| this; …
我正在尝试使用npm start. 但它给了我一个错误
Sideloading the Office Add-in...
Error: Unable to start debugging.
Error: Unable to sideload the Office Add-in.
Error: Sideload is not supported.
我正在运行 Microsoft 为 Outlook 插件提供的直接演示项目。npm run dev-server之前也运行过,npm start因为我在 mac 中运行。
https://docs.microsoft.com/en-us/outlook/add-ins/quick-start?tabs=yeomangenerator
我已经做了一些研究来找到这个问题,但无法提出任何问题。任何帮助将不胜感激。
我目前正在使用 yeoman 和 generator-office for Outlook 开发插件,以将电子邮件及其附件保存到另一个服务。
Outlook 版本:MS Office Professional Plus 2016 v.16.0.48.49.1000
我可以通过转到 File->Manage Add-ins->(Outlook webapp extensions page opens)->Add from file->Select my manifest.xml 来旁加载加载项。
然后我跑npm run start,我得到:
App type: desktop
Enabled debugging for add-in 17717569-bd61-4c6a-b99d-ca55924a2916. Debug method: 0
Starting the dev server... (webpack-dev-server --mode development)
The dev server is running on port 3000. Process id: 9660
Sideloading the Office Add-in...
Error: Unable to start debugging.
Error: Unable to sideload the Office Add-in.
Error: Sideload is not …Run Code Online (Sandbox Code Playgroud) outlook-addin ×10
c# ×5
outlook ×5
vsto ×3
deployment ×1
macos ×1
mapi ×1
ms-office ×1
node.js ×1
office-2007 ×1
office-js ×1
outlook-2007 ×1
outlook-2010 ×1
plugins ×1
sql-server ×1
webex ×1
wix ×1